修改Apache最大連接數/apache並發數


Apache優化步驟:

1 先查看apache的運行模式,查看命令:httpd -l

Compiled in modules:

core.c

prefork.c

http_core.c

mod_so.c

這里可以看到運行模式是prefork模式。

2 修改apache 的httpd-mpm.conf 配置

打開 /usr/local/apache2/conf/extra/httpd-mpm.conf ,每個機器可能httpd-mpm.conf 可能不同,這里可以通過find 命令查詢。

第一次打開的時候默認配置是這樣的。

 

StartServers 5

MinSpareServers 5

MaxSpareServers 10

MaxClients 150

MaxRequestsPerChild 0

其中:

StartServers 表示空閑子進程的最小數量。如果當前空閑子進程數小於MinSpareServers,那么Apache將以最大美妙一個的速度產生新的子進程。此參數不要設置太大。

MinSpareServers 設 置空閑子進程的最大數量。如果當前有超過MaxSpareServers 數量的空閑子進程,那么父進程將殺死多余的子進程。此參數不要設置太大,如果你 講質量設置比MinSpareServers小,Apache將會自動將其修改成“MinSpareServers + 1”。

MaxSpareServers 限 定同一時間客戶最大接入請求的數量(單個進程並發線程數)。任何超過MaxClients限制的請求講進入等候隊列,一旦一個連接被釋放,隊列中的請求將 得到服務。要增大該值必須同事增大ServerLimit(ServerLimit待會再講)。

MaxClients 表示每個子進程在其生存期內允許伺候的最大請求數量。到達MaxRequestsPerChild的限制后,子進程將會結束。如果MaxRequestsPerChild為“0”,子進程將永遠不會結束。

MaxRequestsPerChild 設置為0 ,可以防止(偶然)內存泄漏無限進行,從而耗盡內存。給進程一個有限壽命,從而有助於當服務器負載減輕的時候減少活動進程的數量。

3 現在看看需要怎么優化:

連接數理論上是越大越好,但是得根據硬件,服務器的CPU,內存,帶寬等因素,查看當前的apache連接數:

ps aux | grep httpd | wc -l

計算httpd 占用內存的平均數:

ps aux | grep -v grep |awk '/httpd/{sum += $6;n++};END{print sum/n}'

這個只是做個參考。計算后要減去服務器系統本身所需要的資源。

比如內存2G,減去500M留給服務器,還有1.5G,那么可得到最大連接數:在8000左右。

根據情況修改后的http-mpm.conf的prefork的配置后為:

 

StartServers 5

MinSpareServers 5

MaxSpareServers 10

ServerLimit 5500

MaxClients 5000

MaxRequestsPerChild 100

這里重點介紹下ServerLimit,必須放到MaxClients前,值要大於MaxClients。

4 重啟apache,再打開網站看看是否還會有慢的問題了。

 


mysql優化,mysql默認連接數修改!!!


查看連接數方法,在phpmyadmin里的sql輸入
show status like '%max%';
當前最大連接數
show variables like '%max%';
最大連接數


一.如果使用的是默認的my.cnf那就這樣操作
vi /etc/my.cnf
[mysqld]
set-variable=max_connections=1000
set-variable=max_user_connections=500
set-variable=wait_timeout=200
//max_connections設置最大連接數為1000
//max_user_connections設置每用戶最大連接數為500
//wait_timeout表示200秒后將關閉空閑(IDLE)的連接,但是對正在工作的連接不影響。
然后保存退出,重啟mysql服務后查看連接數。
可以在phpmyadmin里的sql輸入查詢語句,或者輸入/mysql安裝路徑/bin/mysqladmin -uroot -p variables "查看連接數"
max_connections這個就是最大連接數
二.如果各位大俠內存夠大夠猛的話(超過4G的話)可以這樣操作
cp /usr/local/mysql/share/mysql/my-innodb-heavy-4G.cnf /etc/my.cnf
然后更改my.cnf里的max_connections = 100這個數值可以調高!!!
然后查看連接數更改情況

 

 

----------------------------------------------------------------------------------------

修改apache的最大連接數,方法如下:

步驟一
先修改 /path/apache/conf/httpd.conf文件。
# vi httpd.conf
將“#Include conf/extra/httpd-mpm.conf”前面的 “#” 去掉,保存。

步驟二
再修改 /path/apache/conf/extra/httpd-mpm.conf文件。
# vi httpd-mpm.conf
找到 這一行

原:

StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0

修改后

ServerLimit 1000
StartServers 10
MinSpareServers 5
MaxSpareServers 15
MaxClients 1000
MaxRequestsPerChild 0

注意:
ServerLimit 該指令一定要放在第一行。

修改后,一定不要apachectl restart,而是先 apachectl stop 然后再 apachectl start才可以。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM