小VPS受系統資源的限制,訪問量過大,超過系統所能承受的極限時,有一部分請求就會502了。在系統資源夠用的情況,優化nginx,php-fpm,以及系統本身,達到2個目的:
1,合理配置系統資源,將有限的資源,最大化利用。好鋼用在刀刃上。
2,盡量減少磁盤的I/O
一,系統主要資源
[root@xxxxxx nginx]# free -m total used free shared buffers cached Mem: 994 815 179 0 43 118 -/+ buffers/cache: 453 540 Swap: 0 0 0 [root@xxxxxx nginx]# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz stepping : 4 cpu MHz : 2594.024 cache size : 20480 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic 。。。。省略。。。。 bogomips : 5188.04 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power 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_types text/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
查看開機啟動的進程,把不必要啟動進程關掉。如果遇到不知道的,最好先查一下在決定要不要關閉。