网站运营 | 站长学院 | 技术文档 | 成语 | 歇后语 | 桌面壁纸 | 帝国时代 | 代码收藏 | IP地址查询 | 生活百科 | 生日密码 | CSS压缩 | 用户评论

小内存VPS之Nginx+PHP-fpm高负载优化及压力测试方法

【 更新时间:2011-01-24 | 字体:
[导读]Nginx+PHP-fpm组合,以内存占用小,负载能力强壮的特点<,成为小内存VPS建站的首选组合<。我们一起来探讨一下nginx+php-fpm高负载的优化方法<。 先来看看nginx配置参数的优化。nginx是前端接受浏览器端请求的web server...

Nginx+PHP-fpm组合,以内存占用小,负载能力强壮的特点,成为小内存VPS建站的首选组合。我们一起来探讨一下nginx+php-fpm高负载的优化方法。

先来看看nginx配置参数的优化。nginx是前端接受浏览器端请求的web server, 配置可调的参数如下:

下面是示例nginx配置

user www-data;
worker_processes  8;

#worker_processes 调至8, 大于8没什么用<,小于8,nginx性能发挥不出来
worker_cpu_affinity 01 10 01 10 01 10 01 10;

#worker_cpu_affinity 参数可以使nginx充分发挥多核Cpu的性能优势 ,上面的配置是针对双核CPU的配置。01表示第一个核,10表示第二个核<,如果是四核cpu<<,一至四个核分别表示为 0001 0010 0100 1000

error_log  /var/log/nginx/error_log crit;
pid        /var/run/nginx.pid;
worker_rlimit_nofile 10240;

#worker_rlimit_nofile 是nginx能打开文件的最大句柄数,我们需要把这个数字设大一点。

#linux系统的文件查看数限制查看是用 ulimit -n ,修改这个限制是用 ulimit -HSn 65535

events
{
use epoll;

#必须要用高效的event驱动,以获得最大性能
worker_connections  10240;

#max_clients = worker_processes * worker_connections/4 (最大连接数的计算公式)

}
http
{
include /etc/nginx/deny.iplist;
include       /etc/nginx/mime.types;
default_type  application/octet-stream;
server_name_in_redirect off;
server_names_hash_bucket_size 128;
server_tokens off;
client_header_buffer_size 32k;

#client头buffer可以调为32K
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile        on;
tcp_nopush     on;
keepalive_timeout 65;
tcp_nodelay        off;
client_body_timeout 10;
client_header_timeout 10;
send_timeout 60;
output_buffers 1 32k;
postpone_output 1460;
open_file_cache max=1000 inactive=20s;
open_file_cache_valid    30s;
open_file_cache_min_uses 2;
open_file_cache_errors   on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
gzip on;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_proxied        expired no-cache no-store private auth;
proxy_cache_path  /var/lib/nginx/cache  levels=1:2   keys_zone=staticfilecache:80m inactive=1d  max_size=2500m;
proxy_temp_path /var/lib/nginx/proxy;
proxy_connect_timeout 300;
proxy_read_timeout 120;
proxy_send_timeout 120;
proxy_buffer_size  16k;
proxy_buffers      4 16k;
upstream wordpressnginx
{
server 127.0.0.1:6000 weight=1 fail_timeout=120s;
}
include /etc/nginx/sites-enabled/*;
}

上面的配置里面,有多处设及到buffer和timeout的地方。我们可以根据需要,慢慢调大这些参数,buffer自然是大点好,但不要太大。16K是标准配置,可以增加到32,往上加更大也不是不行,但 要考虑到你系统内存大不大,够不够用<<<。timeout是超时,如果服务器很繁忙,不妨增加超时等待时间,以避免频繁出现502错误。

gzip是必须开启的,reverse proxy在允许的情况下,也尽量开启,一 是可以提升响应效率<,二是降低服务器压力,gzip开启后更可以节省服务器带宽。

nginx主要的配置如上所述。

现在看一下php-fpm的配置。
[global]
pid = run/php5-fpm.pid
process_control_timeout = 5
[www]
listen = /dev/shm/php-cgi.sock
listen.allowed_clients = 127.0.0.1
user = www-data
group = www-data
pm = static
pm.max_children = 7

#这个决定了 php-fpm的总进程。我们要想同时响应更多的并发数,这个数值要尽可能大,比如500<,1000
pm.max_requests = 10000

#并发数越大<,这个最大请求数应该越大<,并发数小<<,这个数值也应该越小。它表示,php-fpm进程响应了10000个并发请求之后,就自动重启一下进程。
request_terminate_timeout = 30

#表示等待30秒后,结束那些没有自动结束的php脚本<,以释放占用的资源。
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

小内存的vps虽然经过使用php-fpm+nginx,提升了系统的效率,可以同时响应较多的并发请求,但是当并发数上来了<,比如从100上升到10000,小内存肯定响应不过来,cpu也会 因为太忙,而导致系统负载变得很高很高,这个时候<,我们就要考虑升级硬件配置了。

内存越大越好,CPU核心频率越高越好,CPU核越多越好。硬盘最好是SSD+RAID10<。这样性能不仅高<,数据安全也有保障。

上面所提到的各个配置参数<,设及到数值的,不妨自己 多试着调小<,调大参数,然后重启下nginx或者php-fpm进程<,看看效果怎么样。

下面介绍一个比较好的压力测试工具,siege.

debian和ubuntu用户可以通过apt-get install siege来安装siege.

siege是一个跟ab.exe相似的http压力测试软件。

我们可以用siege来测试我们的网站和服务器性能。

siege -r 100 -c 10 http://www.chinawobo.com/test.php

-r 是 repeat , -r 100是重复100次测试

-c 10是表示模拟10个用户同时并发连接

最后面是要测试的URL地址。

测试过程中可以随时按CTRL+C中止进程,siege会生成一个报告给我们。

我们可以同时根据siege的测试结果和监视服务器的负载情况,对系统压力状况进行一个深入了解和分析。接下来可以帮助我们判断该如何进行下一步操作,是继续优化配置,还是升级硬件。

友荐云推荐
  • 转载请注明来源:网站运营 网址:http://www.chinawobo.com/ 向您的朋友推荐此文章
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者<。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站<<,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们<<,我们会尽快予以更正。
RSS订阅
  • QQ邮箱
  • 填写您的邮件地址<<,订阅我们的精彩内容:
更多
© 2014 网站运营 - T086.com(原itlearner.com)
微商货源 | 冠珠陶瓷 | 迪威乐云商devmsn | 易奇八字 | wwe美国职业摔角 | 八字算命 | 河南旅游景点大全 |
RunTime:6.33ms QueryTime:7