這裏只列出了少數參數,根據工作中實際使用到的和結果,間斷更新。
php.ini
zlib.output_compression=On;
zlib.output_compression_level=3;
zlib.output_handler=;
- 開啓zlib壓縮,開啓後,php會將返回的數據壓縮返回,並且返回頭中的Content-Encoding值會變成gzip。
- 壓縮級別,一般設置在1-5之間,值越大壓縮比越高,一般設置個居中值就可以了,因爲壓縮效率是成反比的,設置一個很大的值,也許花費了很大的性能只壓縮了很小的內容。
- 根據文檔所述,如果開啓壓縮,這個項目必須開啓,不需要設置值,否則可能會產生錯誤。
php-fpm
max-children = 150;
- 一個子線程大約消耗20M內存,根據自己系統的實際內存來設置即可,最好不好直接設置最大值,佔用大約70%-80%內存即可。
nginx
worker_processes 2;
worker_rlimit_nofile 65535;
error_log xxxxx.log crit;
全局配置模塊
- 工作進程數,設置與CPU內核數量一致即可。
- 最大文件操作符數量,linux中與
ulimit -n
數量一致即可,默認最大值爲65535,若需更大的數目,只需要用這條命令設置即可。 - 輸出錯誤級別,c’rit級別才輸入至log。
worker_connections 65535;
use epoll;
multi_accept on;
event配置模塊
- 最大線程處理連接數,我這裏設置的與操作符一致。
- 允許單個線程處理多個任務,這裏的值會根據系統不同有所不同,我這裏系統爲centos因此使用這個值。
- 允許儘可能的處理鏈接,如果最大線程處理連接數過低,會產生大量無效請求。
sendfile on;
tcp_nopush on;
tcp_nodelay on;
http配置模塊
- 使用內核傳輸,比普通操作效率更高。
- 服務器在 sendfile 時可以提前準備 HTTP 首部,能夠達到優化吞吐的效果。
- 不要緩存 data-sends (關閉 Nagle 算法),這個能夠提高高頻發送小數據報文的實時性。
PHP7
開啓opcache擴展,yum安裝的情況下,直接yum install php-opcache
即可,指定源等操作可以查看我的配置服務器文章。