Nginx HttpMemcModule和直接訪問memcached效率對(duì)比測試
更新時(shí)間:2013年09月14日 12:27:28 作者:
Nginx HttpMemcModule和直接訪問memcached效率對(duì)比測試
測試環(huán)境:
測試客戶機(jī)A: HP DL380G4,2個(gè)雙核CPU,4G Ram,2塊10k RPM SAS盤做raid 1,ext3
Nginx所在服務(wù)器B:DELL R710,E5620 * 2,32G Ram,6塊盤15K RPM SAS盤做raid 1+0,xfs
Memcached所在服務(wù)器C:DELL R710,E5620 * 2,32G Ram,6塊盤15K RPM SAS盤做raid 5,ext4
Nginx設(shè)置:keepalive 8192
Php fpm設(shè)置:listen.backlog = -1
memcached啟動(dòng)參數(shù):memcached -d -m 24576 -p 12000 -c 10240
內(nèi)核參數(shù):
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_timestamps = 1
關(guān)于這幾個(gè)內(nèi)核參數(shù)對(duì)應(yīng)的解釋可參考資料:2.12. Reduce TCP performance spikes
測試方案:
使用php連接本地nginx代理,存取遠(yuǎn)程memcached數(shù)據(jù);
使用php直接連接遠(yuǎn)程memcached服務(wù)器;
從測試客戶端用ab發(fā)起并發(fā)測試;
并發(fā)線程從64開始,直到2048,分別是64的N倍;
每種并發(fā)模式都進(jìn)行5輪測試,最后取平均值;
存儲(chǔ)在memcached中的key長度96個(gè)字符,value長度400字符,總是隨機(jī)生成;
測試結(jié)果:
Php程序通過HttpMemcMC訪問memcache和直接訪問memcached的效率并沒有太多損失;采用php直接訪問memcached,失敗的次數(shù)相比通過HttpMemcMC有較大增加,應(yīng)該是HttpMemcMC在keepalive方面更有優(yōu)勢;后續(xù)會(huì)在進(jìn)行一次測試,調(diào)整nginx、php及內(nèi)核相關(guān)參數(shù),再做對(duì)比;本次測試沒有和正常的http請求混在一起對(duì)比,測試結(jié)果不具備絕對(duì)參考價(jià)值;
單從本次測試結(jié)果來看,HttpMemcMC值得擁有
結(jié)果結(jié)果更新:
調(diào)整上述幾個(gè)內(nèi)核參數(shù):
net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_timestamps = 1
通過調(diào)整內(nèi)核參數(shù),調(diào)整tcp連接復(fù)用性提高tcp效率,新的測試結(jié)果如下:
補(bǔ)充小結(jié):
調(diào)整完內(nèi)核后:
1. 可以發(fā)現(xiàn),HttpMemc的平均效率只有NativeMC 72.62%;
2. 調(diào)整內(nèi)核tcp參數(shù)對(duì)提升tcp效率非常有幫助,F(xiàn)ailed requests次數(shù)完全為0;
3. 由于可以提高memcached連接復(fù)用率以及對(duì)程序透明的好處,即便HttpMemc性能不如NativeMC,損失并不是非常厲害,仍然是可以接受的;
測試客戶機(jī)A: HP DL380G4,2個(gè)雙核CPU,4G Ram,2塊10k RPM SAS盤做raid 1,ext3
Nginx所在服務(wù)器B:DELL R710,E5620 * 2,32G Ram,6塊盤15K RPM SAS盤做raid 1+0,xfs
Memcached所在服務(wù)器C:DELL R710,E5620 * 2,32G Ram,6塊盤15K RPM SAS盤做raid 5,ext4
Nginx設(shè)置:keepalive 8192
Php fpm設(shè)置:listen.backlog = -1
memcached啟動(dòng)參數(shù):memcached -d -m 24576 -p 12000 -c 10240
內(nèi)核參數(shù):
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_timestamps = 1
關(guān)于這幾個(gè)內(nèi)核參數(shù)對(duì)應(yīng)的解釋可參考資料:2.12. Reduce TCP performance spikes
測試方案:
使用php連接本地nginx代理,存取遠(yuǎn)程memcached數(shù)據(jù);
使用php直接連接遠(yuǎn)程memcached服務(wù)器;
從測試客戶端用ab發(fā)起并發(fā)測試;
并發(fā)線程從64開始,直到2048,分別是64的N倍;
每種并發(fā)模式都進(jìn)行5輪測試,最后取平均值;
存儲(chǔ)在memcached中的key長度96個(gè)字符,value長度400字符,總是隨機(jī)生成;
測試結(jié)果:
Php程序通過HttpMemcMC訪問memcache和直接訪問memcached的效率并沒有太多損失;采用php直接訪問memcached,失敗的次數(shù)相比通過HttpMemcMC有較大增加,應(yīng)該是HttpMemcMC在keepalive方面更有優(yōu)勢;后續(xù)會(huì)在進(jìn)行一次測試,調(diào)整nginx、php及內(nèi)核相關(guān)參數(shù),再做對(duì)比;本次測試沒有和正常的http請求混在一起對(duì)比,測試結(jié)果不具備絕對(duì)參考價(jià)值;
單從本次測試結(jié)果來看,HttpMemcMC值得擁有
結(jié)果結(jié)果更新:
調(diào)整上述幾個(gè)內(nèi)核參數(shù):
net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_timestamps = 1
通過調(diào)整內(nèi)核參數(shù),調(diào)整tcp連接復(fù)用性提高tcp效率,新的測試結(jié)果如下:
補(bǔ)充小結(jié):
調(diào)整完內(nèi)核后:
1. 可以發(fā)現(xiàn),HttpMemc的平均效率只有NativeMC 72.62%;
2. 調(diào)整內(nèi)核tcp參數(shù)對(duì)提升tcp效率非常有幫助,F(xiàn)ailed requests次數(shù)完全為0;
3. 由于可以提高memcached連接復(fù)用率以及對(duì)程序透明的好處,即便HttpMemc性能不如NativeMC,損失并不是非常厲害,仍然是可以接受的;
您可能感興趣的文章:
- ubuntu下搭建php開發(fā)環(huán)境(nginx+(cgi)php5fpm+memcached+xdebug)
- CentOS 5.4下的Memcache安裝步驟(Linux+Nginx+PHP+Memcached)
- nginx+apache+mysql+php+memcached+squid搭建集群web環(huán)境
- Nginx七層負(fù)載均衡之動(dòng)靜分離思路詳解
- Nginx配置負(fù)載均衡時(shí)訪問地址無法生效的解決方法
- Nginx負(fù)載均衡配置實(shí)例
- nginx配置負(fù)載均衡的服務(wù)宕機(jī)了怎么處理
- Nginx負(fù)載均衡中的Memcached緩存模塊
相關(guān)文章
使用Nginx為自己的網(wǎng)站資源加上防盜鏈保護(hù)實(shí)現(xiàn)
這篇文章主要為大家介紹了使用Nginx為自己的網(wǎng)站資源加上防盜鏈保護(hù)實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08使用nginx方式實(shí)現(xiàn)http轉(zhuǎn)換為https的示例代碼
這篇文章主要介紹了使用nginx方式實(shí)現(xiàn)http轉(zhuǎn)換為https的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)圖片的代碼示例
這篇文章主要給大家介紹了nginx轉(zhuǎn)發(fā)內(nèi)網(wǎng)圖片,文章通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以自己動(dòng)手試一下2023-10-10nginx限速配置的三種方法(limit_req、limit_conn、limit_rate)
本文主要介紹了nginx限速配置的三種方法,主要包括limit_req、limit_conn、limit_rate,本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下2023-08-08nginx實(shí)現(xiàn)根據(jù)URL轉(zhuǎn)發(fā)請求的實(shí)戰(zhàn)經(jīng)歷
這篇文章主要給大家介紹了一次關(guān)于nginx實(shí)現(xiàn)根據(jù)URL轉(zhuǎn)發(fā)請求的實(shí)戰(zhàn)經(jīng)歷,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用nginx具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11