여러분께 여쭤보고 싶습니다. 파일을 압축할 때 시간 제한을 어떻게 설정해도 압축 요청 시 1분 안에 504 시간 초과 메시지가 표시됩니다. nginx php가 설정되었지만 작동하지 않습니다. 관리 소프트웨어는 phpstudy입니다. , 시스템은 centos7입니다.
또 하나 질문이 있습니다. ZipArchive를 압축할 때 압축 속도를 높이고 싶은데 어떻게 처리해야 하나요? 압축 중 최대 서버 로드는 16%에 불과합니다.
大瓶可乐@php.cn2023-07-07 16:22:38
첫 번째 질문과 관련하여 Nginx 및 PHP에서 시간 초과를 설정했지만 여전히 504 시간 초과 오류가 발생하는 경우 다음 해결 방법을 시도해 볼 수 있습니다. 1. PHP-FPM의 시간 초과 설정을 확인합니다. php-fpm .conf 파일을 엽니다. `request_terminate_timeout` 매개변수를 찾아 값을 더 긴 시간(초 단위)으로 늘린 다음 PHP-FPM을 다시 시작하세요. 2. Nginx의 시간 초과 설정을 확인합니다. nginx.conf 파일을 열고 `http` 블록에 다음 매개변수를 추가하거나 수정합니다.
proxy_connect_timeout 600s; proxy_send_timeout 600s; proxy_read_timeout 600s; fastcgi_send_timeout 600s; fastcgi_read_timeout 600s;
3 서버 리소스 제한을 확인합니다. 서버 리소스(CPU, 메모리, 디스크 공간)은 압축 요청을 처리하기에 충분합니다. 서버 리소스가 부족하면 압축 프로세스에 시간이 오래 걸리고 시간 초과가 발생할 수 있습니다. 4. 압축 알고리즘 및 매개변수 조정: 일부 압축 알고리즘은 다른 압축 알고리즘보다 빠를 수 있습니다. 다른 압축 알고리즘을 사용해 보거나 ZipArchive의 매개변수를 조정하여 압축 속도를 높일 수 있습니다. 예를 들어 `setCompressionMethod()` 메서드를 사용하여 다른 압축 방법을 설정하거나 `setCompressionLevel()` 메서드를 사용하여 압축 수준을 조정할 수 있습니다. 두 번째 질문과 관련하여, 서버 부하가 16%에 도달하면 시스템 리소스가 완전히 활용되지 않는다는 의미입니다. 이는 ZipArchive 압축 프로세스가 디스크나 네트워크 작업보다는 CPU 계산에 의해 지배되기 때문일 수 있습니다. 이 경우 압축 속도를 향상시키기 위해 다음 방법을 시도해 볼 수 있습니다. 1. 더 빠른 압축 알고리즘 사용: 일부 압축 알고리즘은 다른 압축 알고리즘보다 빠릅니다. Deflate 알고리즘(`ZipArchive::CM_DEFLATE`)과 같은 더 빠른 압축 알고리즘을 사용해 볼 수 있습니다. 2. 압축 매개변수 조정: 다양한 압축 수준, 창 크기 등을 설정하는 등 ZipArchive 매개변수를 조정하면 압축 속도가 영향을 받을 수 있습니다. 실제 상황에 따라 시도하고 최적화할 수 있습니다. 3. 병렬 처리: 압축해야 할 파일이 여러 개 있는 경우 여러 파일을 병렬로 처리하여 전체 압축 속도를 높이는 것이 좋습니다. 예를 들어 멀티스레딩이나 프로세스 풀을 사용하여 여러 파일을 동시에 처리할 수 있습니다. 서버 성능을 최적화하고 압축 속도를 높이는 경우 충분한 시스템 리소스를 확보하고 서버 용량을 초과하여 성능 문제가 발생하지 않도록 하십시오. 또한 서버 리소스를 현명하게 사용하고 관련 규정 및 모범 사례를 준수하는 것을 잊지 마십시오.