問題背景:
還是之前做的某教育項目Web場景壓測,通過對壓力機端口資源的配置調優之後,單台壓力機並發數可達到300,在此基礎上逐漸加大並發,當並發數達到400時,部分接口出現概率性報錯,且服務端無報錯日誌,Jmeter錯誤日誌:

分析:根據Jmeter接口返回的錯誤日誌,對壓力機的其它參數做配置調優,發現調優效果並不顯著,於是將問題原因定位到服務端,可能是服務端有較多請求正在處理(且處理時間較長),導致Jmeter不能連接上服務器而產生的。通過對服務端進行配置調優,單台壓力機並發數可增加到500並發,下面給大家分享下我在解決此問題過程中對服務端做的幾個調優項,剛入門的新手,歡迎大家交流指教。
方案:服務端的配置調優
調優項1、對web服務器系統的參數進行配置調優,修改/etc/sysctl.conf和/etc/security/limits.conf,具體修改如下:
在/etc/sysctl.conf文件末尾添加:
vm.swappiness= 0
net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce= 2
net.ipv4.conf.all.arp_announce=2
net.ipv4.tcp_max_tw_buckets= 5000
net.ipv4.tcp_syncookies= 1
net.ipv4.tcp_max_syn_backlog= 1024
net.ipv4.tcp_synack_retries= 2
net.ipv4.conf.lo.arp_announce=2
net.ipv4.tcp_fin_timeout= 60
net.ipv4.tcp_tw_reuse= 1
net.ipv4.tcp_tw_recycle= 1
net.ipv4.tcp_syncookies= 1
net.ipv4.tcp_max_syn_backlog= 16384
net.ipv4.tcp_max_tw_buckets= 36000
net.ipv4.route.gc_timeout= 100
net.ipv4.tcp_syn_retries= 2
net.ipv4.tcp_synack_retries= 1
執行sysctl -p是配置生效
在/etc/security/limits.conf文件末尾添加:
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
執行service sshdrestart使配置生效
調優項2、將tomcat的server.xml 配置文件,將http連接池數調大,重啟tomcat,繼續進行壓測

調優項3、對數據庫的連接數進行調整,修改tomcat/conf/context.xml配置文件,新增 maxActive=”300″maxIdle=”30″ maxWait=”1000″,重啟服務,保證配置生效

好了, 本次到此, 堅持的是分享,搬運的是知識,圖的是大家的進步,沒有收費的培訓,沒有虛度的吹水,喜歡就關注、轉發(免費幫助更多夥伴)等來交流,想了解的知識請留言,給你帶來更多價值,是我們期待的方向。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/218730.html