php性能优化 --- laravel 性能优化
?
1、laravel官方提供了一些優(yōu)化(laravel 5.* 版本):
? ??(1)、關(guān)閉debug,修改 .env 的??APP_DEBUG=false
? ?(2)、??sudo php artisan route:cache? ? ? ?路由緩存? ?(清理路由緩存? ?sudo?php artisan route:clear)
(3)、sudo php artisan config:cache? ? ? 配置緩存? ? ?(清理配置緩存? ?sudo?php artisan config:clear)
(4)、sudo php artisan optimize? ? ? ??Laravel優(yōu)化命令,類映射加載優(yōu)化? ?(清理緩存? ?sudo?php artisan clear-compiled)
? ? (5)、sudo sudo composer dump-autoload --optimize? ? ??composer優(yōu)化
?
***注***:想要laravel更快,可以使用swoole加速laravel。相關(guān)鏈接:https://www.cnblogs.com/cj8988/p/9506606.html
?
2、內(nèi)核限制數(shù)修改
? ulimit -n? ? 默認(rèn)是1024,修改大些
sudo vim /etc/security/limits.conf 添加兩行* soft nofile 655360 * hard nofile 655360
3、客戶端鏈接信息?
當(dāng)前鏈接數(shù)? ? ? netstat -nat|grep ESTABLISHED|wc -l
服務(wù)器處理任務(wù)信息? ? ?netstat -n | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}'
?
查看客戶端IP鏈接數(shù)? ? ?netstat -nat|grep "tcp"|awk ' {print$5}'|awk -F : '{print$1}'|sort|uniq -c|sort -rn?
?
解決大量?Time_Wait問(wèn)題
修改配置文件 sudo vim /etc/sysctl.conf添加net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 30net.ipv4.ip_local_port_range = 10240 60999 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000然后 sudo /sbin/sysctl -p 讓參數(shù)生效。*** 參數(shù)解釋 ***
net.ipv4.tcp_syncookies = 1 表示開啟SYN Cookies。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用cookies來(lái)處理,可防范少量SYN攻擊,默認(rèn)為0,表示關(guān)閉;net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉;net.ipv4.tcp_fin_timeout=30 修改系統(tǒng)默認(rèn)的 TIMEOUT 時(shí)間。net.ipv4.tcp_keepalive_time = 1200 #表示當(dāng)keepalive起用的時(shí)候,TCP發(fā)送keepalive消息的頻度。缺省是2小時(shí),改為20分鐘。net.ipv4.ip_local_port_range = 1024 65000 #表示用于向外連接的端口范圍。缺省情況下很小:32768到61000,改為1024到65000。net.ipv4.tcp_max_syn_backlog = 8192 #表示SYN隊(duì)列的長(zhǎng)度,默認(rèn)為1024,加大隊(duì)列長(zhǎng)度為8192,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù)。net.ipv4.tcp_max_tw_buckets = 5000 #表示系統(tǒng)同時(shí)保持TIME_WAIT套接字的最大數(shù)量,如果超過(guò)這個(gè)數(shù)字,TIME_WAIT套接字將立刻被清除并打印警告信息。 默認(rèn)為180000,改為5000。對(duì)于Apache、Nginx等服務(wù)器,上幾行的參數(shù)可以很好地減少TIME_WAIT套接字?jǐn)?shù)量,但是對(duì)于 Squid,效果卻不大。此項(xiàng)參數(shù)可以控制TIME_WAIT套接字的最大數(shù)量,避免Squid服務(wù)器被大量的TIME_WAIT套接字拖死。
4、php開啟opcache (php7.1)
?
修改配置 sudo vim /etc/php/7.1/fpm/php.ini 找到 [opcache] 修改如下[opcache] ; 開關(guān)打開 opcache.enable=1; 開啟CLI opcache.enable_cli=1; 可用內(nèi)存, 酌情而定, 單位為:Mb opcache.memory_consumption=528; Zend Optimizer + 暫存池中字符串的占內(nèi)存總量.(單位:MB) ; opcache.interned_strings_buffer=8; 對(duì)多緩存文件限制, 命中率不到 100% 的話, 可以試著提高這個(gè)值 opcache.max_accelerated_files=10000; Opcache 會(huì)在一定時(shí)間內(nèi)去檢查文件的修改時(shí)間, 這里設(shè)置檢查的時(shí)間周期, 默認(rèn)為 2, 定位為秒 opcache.revalidate_freq=1 (生產(chǎn)環(huán)境,代碼不變可以關(guān)閉 0)opcache.validate_timestamps=60 //多少秒更新一下php文件 (生產(chǎn)環(huán)境,代碼不變可以關(guān)閉 0); 打開快速關(guān)閉, 打開這個(gè)在PHP Request Shutdown的時(shí)候回收內(nèi)存的速度會(huì)提高 opcache.fast_shutdown=1? ?***注***? : 當(dāng)?opcache.revalidate_freq 和?opcache.validate_timestamps 設(shè)置為0時(shí),修改代碼必須重新啟動(dòng)php-fpm才能使新代碼生效。(使用命令??sudo service php7.1-fpm reload )
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/cj8988/p/9606508.html
總結(jié)
以上是生活随笔為你收集整理的php性能优化 --- laravel 性能优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Golang面试题解析(五)
- 下一篇: Spring 使用Cache(转)