apache + php 連線過多卡住,若是資料庫問題,可考慮使用proxysql,畢竟php沒有sql thread pool,就算是用 pconnect() 設定上也是很麻煩,也且一個連線也只能給同一個process的thread共用,只能說是半套,那不如直接用connect()連完就drop即可。
若不是資料庫而是apache撐不住,可以調整 prefork模組的設定(可用apachectl -V或httpd -V查看是不是prefork模式),
譬如 apache 2.4的/etc/apache2/mods-available/mpm_prefork.conf:
<IfModule mpm_prefork_module>
StartServers 4
MinSpareServers 15
MaxSpareServers 75
ServerLimit 3000
MaxRequestWorkers 3000
MaxConnectionsPerChild 9000
</IfModule>
或apacpe 2.0 的 /etc/httpd/conf/httpd.conf
<IfModule prefork.c>
StartServers 8
MinSpareServers 15
MaxSpareServers 75
ServerLimit 3000
MaxClients 3000
MaxRequestsPerChild 9000
</IfModule>
沒有留言:
張貼留言