我最近转向了一个2服务器设置,其中Nginx、Apache和Php位于一台服务器上,而Mysql 5.5位于另一台服务器上。每个服务器在1GB上都有一个RAM。
Nginx用作Apache的图像代理。apache使用FastCgi通过套接字与Php通信。
Apache正在使用MPM辅助配置(我使用以下配置)
<IfModule mpm_worker_module>
StartServers 2
ServerLimit 2
MinSpareThreads 50
MaxSpareThreads 80
ThreadLimit 80
ThreadsPerChild 50
MaxClients 100
MaxRequestsPerChild 10000
</IfModule>Nginx基本配置
user www-data www-data;
worker_processes 2;
events {
worker_connections 1024;
use epoll;
}
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 55;现在,当我同时使用ab和外设进行负载测试时,两种工具之间每秒的事务量有很大的差异。
有时abs以每秒3-6反式的速度给出很差的结果,而攻城返回的效果则是每秒22-26次。
我在这里有点困惑,无法决定我的新设置是否提高了性能!
以前,当我测试的时候,我用的是每秒3-6反流,这是很低的,但是当围攻开始时,每秒26反的结果,我被说服了。
nginx.conf设置
client_header_timeout 30m;
client_body_timeout 30m;
send_timeout 30m;
connection_pool_size 256;
client_header_buffer_size 16k;
client_max_body_size 24M;
client_body_buffer_size 128k;
large_client_header_buffers 4 2k;
request_pool_size 4k;
proxy_buffer_size 256k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 128k;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 1m;
fastcgi_buffers 4 500k;
fastcgi_busy_buffers_size 1m;
fastcgi_temp_file_write_size 1m;
fastcgi_intercept_errors on;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
output_buffers 1 32k;
postpone_output 1460;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 2;
ignore_invalid_headers on;发布于 2011-11-04 13:36:24
这里可能根本不需要apache,除非您的应用程序专门使用apache。只需使用nginx提供图像,并让其将其直接传递给PHP;您将获得更好的性能。
另外,假设一个小型PHP脚本为8MB,您的100个maxclient=100x8MB=800 8MB仅用于PHP,这将杀死一个小的VPS。这是在考虑数据库所需的内存之前,等等。如果您正在使用PHP运行一些重要的东西,比如drupal (带有大量插件)或magento,那么可能需要更多的100个客户机x200MB=20 If内存。大多数wordpress安装都更像是16-32MB,所以您需要的内存是2GB,加上数据库、nginx等等。
可能您在这里看到的是基准测试,这取决于您的服务器何时耗尽内存,并开始因交换而停止运行。我建议从一个干净的nginx + fpm配置开始,找出一个PHP线程在使用应用程序一段时间后最大使用了多少RAM,然后相应地调优nginx / fpm和您的DB。坦率地说,如果可以的话,现在只需卸载apache即可。
https://serverfault.com/questions/327787
复制相似问题