小VPS受系统资源的限制,访问量过大,超过系统所能承受的极限时,有一部分请求就会502了。在系统资源够用的情况,优化nginx,php-fpm,以及系统本身,达到2个目的:
1,合理配置系统资源,将有限的资源,最大化利用。好钢用在刀刃上。
2,尽量减少磁盘的I/O
一,系统主要资源[root@xxxxxx nginx]# free -m totalusedfree sharedbuffers cachedMem:994815179 0 43118-/+ buffers/cache:453540Swap:0 0 0 [root@xxxxxx nginx]# cat /proc/cpuinfoprocessor: 0vendor_id: GenuineIntelcpu family : 6model: 62model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHzstepping: 4cpu MHz : 2594.024cache size : 20480 KBphysical id : 0siblings: 1core id : 0cpu cores: 1apicid : 0initial apicid : 0fpu : yesfpu_exception: yescpuid level : 13wp : yesflags: fpu vme de pse tsc msr pae mce cx8 apic 。。。。省略。。。。bogomips: 5188.04clflush size: 64cache_alignment : 64address sizes: 46 bits physical, 48 bits virtualpower management:
二,php-fpm优化pm = dynamic //进程数,动态分配pm.max_children = 24 //最大进程数pm.start_servers = 8 //刚启动时的进程数pm.min_spare_servers = 8 //服务器空闲时的最小进程数pm.max_spare_servers = 24 //服务器空闲时的最大进程数php_flag[display_errors] = off//运行一段时间后,将错误提示信息关闭掉
php-fpm一个进程占了20M-30M之间,top看一下php-fpm占的内存百分比,估算一下就知道了。max_children,max_spare_servers不是越大越好。
三,nginx优化1,安装稳定最新版
# vim /etc/yum.repos.d/nginx.repo//加上以下内容[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=0enabled=1# yum install nginx //更新nginx
2,优化配置nginx
worker_processes auto; //设置auto,nginx进程动态分配# access_log//注释掉,减少I/O# log_format//注释掉,减少I/Ogzip on; //开启gzipgzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.1;gzip_comp_level 5;//1-9,越大压缩越好,消耗资源越大gzip_typestext/plain application/x-javascript text/css application/xml;gzip_vary on;
worker_processes对于小VPS的话,设成1,2也是可以的。够用了。
对于小vps的话,上面nginx,php-fpm的优化配置都是有益的。
四,linux启动进程优化复制代码 代码如下:
# chkconfig --list |grep on
查看开机启动的进程,把不必要启动进程关掉。如果遇到不知道的,最好先查一下在决定要不要关闭。