首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx作为apache负载测试的代理。

Nginx作为apache负载测试的代理。
EN

Server Fault用户
提问于 2011-11-04 13:09:01
回答 1查看 544关注 0票数 0

我最近转向了一个2服务器设置,其中Nginx、Apache和Php位于一台服务器上,而Mysql 5.5位于另一台服务器上。每个服务器在1GB上都有一个RAM。

Nginx用作Apache的图像代理。apache使用FastCgi通过套接字与Php通信。

Apache正在使用MPM辅助配置(我使用以下配置)

代码语言:javascript
复制
<IfModule mpm_worker_module>
    StartServers         2
    ServerLimit          2
     MinSpareThreads      50
    MaxSpareThreads      80
    ThreadLimit          80
    ThreadsPerChild      50
    MaxClients           100
    MaxRequestsPerChild  10000
</IfModule>

Nginx基本配置

代码语言:javascript
复制
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设置

代码语言:javascript
复制
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;
EN

回答 1

Server Fault用户

发布于 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即可。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/327787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档