1.配置項
2.連接數調整
總連接數 = acceptCount+connections
connections:tomcat能接收的請求限制
acceptCount:超過tomcat能接收的請求以后,堆積在操作系統的數量(windows和linux略有不同)
什么時候需要調整connnections(springboot配置參數:server.tomcat.max-connections)?如何調整?
connections小於maxThreads的時候,需要調大,最好是比預期的最高並發數要大20%,多出的請求堆積
到tomcat的worker處理線程池中
什么時候需要調整acceptCount(springboot配置參數:server.tomcat.accept-count)?
想受理更多用戶請求,卻又不想堆積在tomcat中,利用操作系統來堆積,可以調整為最高並發數-connections
實際上不需要調整,tonmcat默認100,linux默認128,最好是把連接控制交給應用程序,這樣方便管理
線程數量(springboot配置參數:server.tomcat.max-threads)調為多少合適?
線程太少,cpu利用率過低,程序吞吐量變小,資源浪費,容易堆積
線程太多,上下文頻繁切換,性能反而降低
理想的線程數量是(1+代碼阻塞時間/代碼執行時間)*線程數量
實際情況是跑起代碼,使用jmeter之類的壓測工具進行壓測,不斷調整線程數,將cpu
打到80%-90%的利用率
3.總結
請求多,cpu占用率高了,如果能接受慢響應,就加大線程數量,否則就集群分流
優化代碼才是王道,配置知識錦上添花