php效能最佳化 --- laravel 效能最佳化

來源:互聯網
上載者:User

標籤:允許   opera   color   加速   檔案   time_wait   service   squid   使用   

 

1、laravel官方提供了一些最佳化(laravel 5.* 版本):

    (1)、關閉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最佳化命令,類映射載入最佳化   (清理緩衝   sudo php artisan clear-compiled)

    (5)、sudo sudo composer dump-autoload --optimize      composer最佳化

 

***注***:想要laravel更快,可以使用swoole加速laravel。相關連結:https://www.cnblogs.com/cj8988/p/9506606.html

 

2、核心限制數修改

  ulimit -n    預設是1024,修改大些

sudo vim /etc/security/limits.conf 添加兩行* soft nofile 655360* hard nofile 655360

  

3、用戶端連結資訊 

當前連結數      netstat -nat|grep ESTABLISHED|wc -l

伺服器處理任務資訊     netstat -n | awk ‘/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}‘

 

查看用戶端IP連結數     netstat -nat|grep "tcp"|awk ‘ {print$5}‘|awk -F : ‘{print$1}‘|sort|uniq -c|sort -rn 

 

解決大量 Time_Wait問題

修改設定檔sudo vim /etc/sysctl.conf添加net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_fin_timeout = 30net.ipv4.ip_local_port_range = 10240 60999net.ipv4.tcp_keepalive_time = 1200net.ipv4.tcp_max_syn_backlog = 8192net.ipv4.tcp_max_tw_buckets = 5000然後  sudo  /sbin/sysctl -p   讓參數生效。

  *** 參數解釋 ***

net.ipv4.tcp_syncookies = 1 表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防範少量SYN攻擊,預設為0,表示關閉;net.ipv4.tcp_tw_reuse = 1    表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP串連,預設為0,表示關閉;net.ipv4.tcp_fin_timeout=30    修改系統預設的 TIMEOUT 時間。net.ipv4.tcp_keepalive_time = 1200 #表示當keepalive起用的時候,TCP發送keepalive訊息的頻度。預設是2小時,改為20分鐘。net.ipv4.ip_local_port_range = 1024 65000 #表示用於向外串連的連接埠範圍。預設情況下很小:32768到61000,改為1024到65000。net.ipv4.tcp_max_syn_backlog = 8192 #表示SYN隊列的長度,預設為1024,加大隊列長度為8192,可以容納更多等待串連的網路連接數。net.ipv4.tcp_max_tw_buckets =  5000#表示系統同時保持TIME_WAIT通訊端的最大數量,如果超過這個數字,TIME_WAIT通訊端將立刻被清除並列印警告資訊。預設為180000,改為5000。對於Apache、Nginx等伺服器,上幾行的參數可以很好地減少TIME_WAIT通訊端數量,但是對於 Squid,效果卻不大。此項參數可以控制TIME_WAIT通訊端的最大數量,避免Squid伺服器被大量的TIME_WAIT通訊端拖死。

  

4、php開啟opcache (php7.1)

 

修改配置   sudo vim /etc/php/7.1/fpm/php.ini找到   [opcache]修改如下[opcache]; 開關開啟opcache.enable=1; 開啟CLIopcache.enable_cli=1; 可用記憶體, 酌情而定, 單位為:Mbopcache.memory_consumption=528; Zend Optimizer + 暫存池中字串的占記憶體總量.(單位:MB); opcache.interned_strings_buffer=8; 對多快取檔案限制, 命中率不到 100% 的話, 可以試著提高這個值opcache.max_accelerated_files=10000; Opcache 會在一定時間內去檢查檔案的修改時間, 這裡設定檢查的時間周期, 預設為 2, 定位為秒opcache.revalidate_freq=1    (生產環境,代碼不變可以關閉  0)opcache.validate_timestamps=60     //多少秒更新一下php檔案  (生產環境,代碼不變可以關閉  0); 開啟快速關閉, 開啟這個在PHP Request Shutdown的時候回收記憶體的速度會提高opcache.fast_shutdown=1       

   ***注***  : 當 opcache.revalidate_freq 和 opcache.validate_timestamps 設定為0時,修改代碼必須重新啟動php-fpm才能使新代碼生效。(使用命令  sudo service php7.1-fpm reload )

 

 

  

 

php效能最佳化 --- laravel 效能最佳化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.