64 비트 서버가 있지만 256MB의 RAM 만 있습니다. 그래서 fast-cgi를 사용하여 nginx 서버로 이동하여 PHP에 연결했습니다. PHP 5.3.6을 실행 중입니다.
문제는 PHP 페이지에 액세스하려고 할 때 2 ~ 3 일마다 서버 내부 오류가 발생한다는 것입니다. 유일한 방법은 php-fpm을 수동으로 다시 시작하는 것입니다. 이것은 내가 질식시키는 원인이되는 몇 가지 잘못된 매개 변수를 설정했음을 의미합니다. 아래에는 관련 구성이 나열되어 있습니다.
/etc/php-fpm.conf :-
include=/etc/php-fpm.d/*.conf
log_level = error
;emergency_restart_threshold = 0
;emergency_restart_interval = 0
;process_control_timeout = 0
/etc/php-fpm.d/www.conf :-
[www]
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5
pm.max_requests = 500
/etc/nginx/php.conf :-
location ~ \.php {
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_pass unix:---some-location---;
}
업데이트 1
그리고 네 개의 nginx 프로세스가 실행 중입니다. 평균적으로 각 php-fpm 프로세스에는 35MB의 RAM이 필요합니다 (가상 메모리 크기는 각각 320MB). 또한 MySql 프로세스가 실행 중입니다.
업데이트 2
로그를 붙여 넣는 것을 잊었습니다.
PHP-fpm 오류 로그 :-
WARNING: [pool www] seems busy (you may need to increase start_servers, or min/max_spare_servers), spawning 8 children, there are 1 idle, and 7 total children
WARNING: [pool www] server reached max_children setting (10), consider raising it
NOTICE: Terminating ...
php-fpm www.error 로그 :-
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 122880 bytes) in /home/webadmin/blog.applegrew.com/html/wordpress/wp-content/plugins/jetpack/class.jetpack-signature.php on line 137
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 122880 bytes) in /home/webadmin/blog.applegrew.com/html/wordpress/wp-content/plugins/jetpack/class.jetpack-signature.php on line 137
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 122880 bytes) in /home/webadmin/blog.applegrew.com/html/wordpress/wp-content/plugins/jetpack/class.jetpack-signature.php on line 137
free
시작한다. 사용 가능한 메모리를 35로 나누면를 얻을 수 있습니다max_children value
. 나는 마지막 파라의 목적을 얻지 못했습니다.