麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > Apache > 正文

Apache增加最大連接數的方法

2024-08-27 18:29:50
字體:
來源:轉載
供稿:網友
MaxClients n

1、apache1.x
n是整數,表示最大連接數,取值范圍在1和256之間,如果要讓apache支持更多的連接數,那么需要修改源碼中的httpd.h文件,編輯/httpd-2.0.59/include/httpd.h中的HARD_SERVER_LIMIT值改大然后再編譯。
增加apache最大連接數的方法:
在httpd.conf中設置:
MaxClients n
n是整數,表示最大連接數,取值范圍在1和256之間,如果要讓apache支持更多的連接數,那么需要修改源碼中的httpd.h文件,把定義的HARD_SERVER_LIMIT值改大然后再編譯
2、apache2.x
系統默認150個連接數,下面的例子修改為1500個。
修改httpd.conf文件
找到
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>
修改
MaxClients 150

ServerLimit 1500
MaxClients 1500
然后保存退出。
重新啟動http服務(/etc/rc.d/init.d/httpd restart)
每次重做服務器,就會學到一些新的東西,所以了解linux最簡潔有效的辦法,就是不停的重做系統,重新配置優化系統(XD!)。
本次使用了apache2.2.6,編譯完成后,最大連接數默認為150,運行一段時間后出現大量的CLOSE_WAIT,于是修改默認連接數。apache2.2以后許多功能都抽出來單獨存放了,在http.conf里進行引用。存儲連接數等相關指令的文件是httpd-mpm.conf,apache采用的是prefork模式來進行連接數量方面的控制,prefork模塊的格式如下:
<ifmodule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0<ifmodule>
其工作原理如下:
控制進程在最初建立StartServers個子進程后, 為了滿足MinSpareServers設置的需要,創建一個進程,等待一秒鐘,繼續創建第二個,等待一秒鐘,繼而創建四個,如此按指數級增加創建的進程 數,最多達到每秒32個,直到滿足MinSpareServers設置的值為止,這也就是預派生(prefork)的由來。這種模式可以使得不必在請求到 來時再產生新的進程,從而減小了系統開銷以增加性能。
MaxSpareServers 設置了最大的空閑進程數,如果空閑進程數大于這個值,Apache會自動kill某些多余進程。這個值一般不要設的過大,但如果設的比 MinSpareServers小,Apache會自動把它調整為MinSpareServers+1。如果站點負載較大的話,可考慮同時加大 MinSpareServers和MaxSpareServers。
MaxRequestsPerChild設置的是每個子進程可以 處理的請求數。每個子進程在處理了MaxRequestsPerChild個請求后將自動銷毀。0意味著無限,即子進程永不銷毀。雖然缺省設為0可以使每 個子進程處理更多的請求,但如果設成非零值也有兩點重要的好處:
1. 可防止意外的內存卸漏;
2. 在服務器負載下降的時侯會自動減少子進程數。
因此,可根據服務器的負載來調整這個值,如果非零的話,筆者認為10000左右是比較合適的。事實上這個值對Apache的性能影響不是很大。
MaxClients 是這些指令中最為重要的一個,它設定的就是Apache可以同時處理的請求,這是對Apache性能影響最大的參數.在我個人看來,缺省的150是遠遠不 夠的,如果請求總數已達到這個值(可通過ps –ef|grep httpd|wc –l來確認),那么下面的請求就要排隊,直到某個已處理請求完畢。這就是為什么系統資源還剩下很多,而http訪問卻很慢的主要原因。系統管理員可以根據 硬件配置和負載情況來動態調整這個值,雖然理論上這個值越大,可以處理的請求就越多,但Apache默認的限制是不能大于256。如果把這個值設為大于 256那么Apache將無法起動。事實上,256對于負載稍重的站點也是很不夠的。在Apache1.3中這是個硬限制,如果要加大這個值,必須在 configure前手工修改源代碼樹下的src/include/httpd.h,查找256,會發現#define HARD_SERVER_LIMIT 256這行,把256改為你要增大的值如4000,然后重新編譯Apache即可。我想這個方法稍有些經驗的Apache系統管理員都知道,不過我相信在 Apache2.0中知道如何加大這個值的人就不會太多了。
在Apache2.0中新加入了ServerLimit指令,使得無須重編譯Apache就可以加大MaxClients。下面是筆者的prefork配置段。
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1500
MaxRequestsPerChild 10000
</IfModule>
BTW: ServerLimit的最大值是20000,這對于大多數站點是足夠了,但如果你一定要再加大的話,那么這個值位于源代碼樹下的server/mpm/prefork/prefork.c中。里面的
#define DEFAULT_SERVER_LIMIT 256
#define MAX_SERVER_LIMIT 20000
這兩行就對應著MaxClients和ServerLimit的限制值。 但我相信很少有人可以用到20000的并發連接數。
以上內容來自unix中文 對于prefork的工作模式能夠實現的功能描寫的比較詳盡了。我在用的時候發現ServerLimits和MaxClients這兩個參數的順序是不可以顛倒的,否則重起apache時會報警。根據周超 同學的提醒,凡是有依賴關系的命令,書寫應該都是有順序的。
同時在查資料的過程中,揀到一條命令:
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {[標記錯誤:for] print a, S[a]}'
這條語句返回結果如下
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的SYN_RECV表示正在等待處理的請求數;ESTABLISHED表示正常數據傳輸狀態;TIME_WAIT表示處理完畢,等待超時結束的請求數。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 99精品国产在热久久婷婷 | 国产精品久久久久久久久久久久久久久久 | 黄色免费大片 | 午夜视频福利 | 国产亚洲精久久久久久蜜臀 | 欧美视频国产精品 | 国产91对白叫床清晰播放 | 精品久久一区二区三区 | 美女喷水网站 | 中文字幕在线观看精品 | 欧美中文字幕一区二区 | 九九午夜| 国产婷婷一区二区三区 | 日本不卡一区二区三区在线观看 | 欧美成年人在线视频 | 欧美精品久久久久久久久久 | 成人男女啪啪免费观看网站四虎 | 毛片免费看网站 | 欧美性色黄大片www 成人免费网站在线观看 | 一级一片免费看 | 激情视频在线播放 | 污版视频在线观看 | 久久精品视频免费 | 欧美激情图区 | 国产精品视频免费网站 | 日日鲁夜夜视频热线播放 | 49vvv| 999插插插| 巨根插入 | 色网站免费观看 | 成人aaaaa片毛片按摩 | 精品一区二区三区免费看 | 一级一级一级一级毛片 | 欧美视频一区二区三区四区 | 男女生羞羞视频网站在线观看 | 天天草天天干天天射 | 久久久久久麻豆 | 精品亚洲一区二区 | 91久久国产露脸精品国产护士 | 日本在线精品视频 | 毛毛片在线看 |