tomcat優化篇——jmeter壓力測試工具使用

安全優化

  • 管理端口保護

在server.xml文件下把管理端口和口令修改一下,防止圖謀不軌的人telnet上來關掉我的tomcat:
在這裏插入圖片描述

  • ajp連接端口保護

Apache JServ協議1.3版(簡稱ajp13)是一個二進制的TCP傳輸協議,相比當前HTTP這種純文本協議來說它的效率和性能更加高效,然而,目前的瀏覽器並不能直接支持ajp13,就連目前非常火爆的nginx也沒有相應的模塊能支持ajp。按照官方的說法就是如果你使用的是apache,而Apache的proxy_ajp模塊進行反向代理能大大提高動靜分離的性能(說白了就是僅對Apache有用)。如果你用得不是apache那就趁早這樣設置吧:
在這裏插入圖片描述

  • 禁用管理頁面

在這裏插入圖片描述

管理頁面能看到我們服務的所有配置信息,一般在生產上是不建議開啓的。
在這裏插入圖片描述
另外一個就是在我們部署完成tomcat之後建議做以下處理:
刪除conf目錄下的tomcat-users.xml
刪除webapps目錄下默認的所有目錄文件
將tomcat網站目錄配置在安裝目錄以外的目錄

  • 使用監牢模式以管理維護tomcat

監牢模式是指讓服務通過非root用戶啓動、關閉、管理tomcat。
在這裏插入圖片描述
在切換用戶之前先關閉tomcat服務再以普通用戶的身份啓動tomcat能看到服務啓動成功。

  • 文件列表訪問控制

tomcat的訪問控制相當於nginx的autoindex功能,編輯conf目錄下的web.xml文件,設置爲true則開啓:
在這裏插入圖片描述

  • 隱藏版本信息

tomcat和其它web服務器也一樣需要隱藏版本信息防止通過漏洞對網站進行攻擊,在web.xml添加:

<error-page>
4727     <error-code>403</error-code>
4728     <location>/forbidden.jsp</location>
4729     </error-page>
4730 
4731     <error-page>
4732     <error-code>404</error-code>
4733     <location>/notfound.jsp</location>
4734     </error-page>
4735 
4736     <error-page>
4737     <error-code>500</error-code>
4738     <location>/busy.jsp</location>
4739     </error-page>

在這裏插入圖片描述

在server.xml添加:
在這裏插入圖片描述
可以看到:
在這裏插入圖片描述

  • 訪問控制

tomcat的訪問控制相當於nginx的deny跟allow,用來限制某個IP的訪問請求只需在host相應區內配置:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.8.*" />
  • 啓停腳本權限設置
[root@localhost:/app/tomcat/bin]# chmod 700 ./*.sh
  • 修改訪問日誌格式

在server.xml修改爲:

%{Referer}i %{User-Agen    t}i %D" resolveHosts="false"

在這裏插入圖片描述
在這裏插入圖片描述

性能優化

  • 參數數值優化

先不設置數值,通過壓力測試軟件做壓力測試看看tomcat性能再增加優化參數。

常見的壓力測試工具:

壓力測試going工具
ab/webbench http壓力測試
jmeter 壓力測試java(tomcat)
dd/fio 磁盤
mysqlslap 測試數據庫
loadrunner 專業測試工具

jmeter壓力測試工具準備

下載好jmeter工具之後在bin目錄下有個jmeter.bat文件打開之後
在這裏插入圖片描述

配置好之後可以看到一些信息:
在這裏插入圖片描述
聚合報告中各項項指標含義如下:
樣本:jmeter發送了多少個請求
平均值:平均響應時間
中位數:50%用戶的響應時間
90%百分位:90%用戶的響應時間
最小值:最小響應時間
最大值:最大響應時間
異常:本次測試產生錯誤請求的數量
吞吐量:每秒完成的請求數,我們要優化調整的參數
接收:每秒從服務器接收到的數據量
在這裏插入圖片描述
調整線程組的線程數等參數用於壓力測試:

在這裏插入圖片描述
在tomcat的server.xml文件中添加優化參數:
在這裏插入圖片描述

maxThreads="500":最大的線程數,根據CPU的運算能力設置大小,如果CPU在計算的情況下應適當設置小一些;如果是IO頻繁的情況下,則適當調大
acceptCount="500":當達到最大線程數量的時候的隊列長度,一般設置跟maxThreads數一樣
minSpareThreads="10":空閒時最小的線程數量
enableLookups="false":禁用DNS解析
compression="on":打開壓縮功能
compressionMinSize="2048":最小壓縮文件大小,單位字節
compressableMimeType="text/html,text/plain,text/css,application/javascript,application/json,application/x-font-ttf,application/x-font-otf":壓縮哪些類型的文件
disableUpTimeout="true":禁用上傳文件超時
acceptorThreadCount="2":接收連接線程的個數

  • jvm優化

調整jvm的初始內存大小:
修改catalina.sh文件

在這裏插入圖片描述

JAVA_OPTS='-Xms1024m -Xmx1024m    -Xloggc:/var/log/tomcat_gc.log'

-Xms:jvm初始內存大小
-Xmx:jvm最大內存,一般設置爲-Xms的2倍
gc:垃圾回收機制,定期清理jvm內存
-Xloggc:執行gc時候記錄日誌
如果是jar包在解壓時指定這些參數:java -jar xxx.jar -Xms1024m -Xmx1024m -Xloggc:/var/log/tomcat_gc.log

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章