服務器配置選擇測試和性能如何優化?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
聽多了架構優化,接口優化,數據庫優化,今天我們來聊聊服務器優化。 我們開發的軟件服務需要在服務器上運行,所以服務器性能代表了軟件的性能上限,因此服務器性能調優是個十分重要的環節,然而大部分同學對服務器性能調優關注的較少,今天從3個部分對服務器性能調優進行介紹,分別是:服務器配置選擇,服務器負載分析,服務器內核參數調優。 服務器配置選擇服務器一般是由CPU、內存、磁盤和網卡組成,因此選擇服務器配置就是選擇CPU核數、內存大小、磁盤大小及類型、網絡帶寬。但是,服務器配置的選擇是很難標準化的,也就是說很難推斷出“一臺需要達到1000TPS的后端服務器”的配置應該是什么樣的。因為軟件的最終運行性能與軟件的實現方式是緊密相關的,即使是同一個后端應用程序中的兩個接口,由于具體功能的差別,性能也會有所差別。 因此,服務器配置的選擇應該基于具體的測試結果。一開始可以選用配置較低的服務器做調優和測試,并以該服務器的測試結果作為選擇服務器的依據。 以一個訂單業務為例,經過測試后,一臺配置為4核 CPU 、16GB內存、10Mbps帶寬、50GB機械磁盤的服務器的測試結果為:支持50并發量和300TPS吞吐量(增大并發量后會出現超時報錯)。而在壓力測試過程中, CPU 的使用率接近75%,內存使用率在 50%以下,帶寬使用率在50%以下,除去日志以外無磁盤操作。 因此可以認為,一臺配置為4核 CPU ( CPU 使用率需要在75%以下)、8GB內存(內存使用率可以接近100%)、 5Mbps 帶寬(帶寬使用率可以接近100%)的服務器,可以滿足訂單接口支持50并發量、300TPS吞吐量的壓力。 如果需要達到200并發數、2400TPS吞吐量的目標的話,則需要8臺配置為4核 CPU 、8GB內存、5Mbps帶寬的服務器,或者1臺配置為32核 CPU 、64GB內存、40Mbps帶寬的服務器。當然,最終的服務器配置還是需要通過測試來驗證。
服務器負載分析在性能調優時,需要先對服務器負載進行分析,通常而言,我們主要分析CPU使用率、內存使用率、磁盤I/O,服務器負載和帶寬使用情況。 CPU使用率CPU使用率反應的是CPU的忙碌情況。當CPU達到100%時,部分進程會進入等待狀態,CPU暫時不會對其進行處理。在實際情況下,為了應對一下突發性的請求壓力,服務器CPU使用率一般需要在75%以下。如果一臺服務器的CPU使用率多次高于75%,這時候就考慮增加新的服務器。 監控CPU使用率我推薦大家使用htop工具,可以非常直觀看到CPU使用率、內存使用率、及負載等信息。 使用htop查看CPU負載首先我們需要安裝htop,以centos為例,安裝命令如下:
安裝完成后我們就可以通過
輸入
如上圖所示,這是一個4核CPU服務器,在截圖的時候其中3核CPU使用率都超過了75%,再觀察一會發現所有CPU的使用率都在85%左右徘徊,說明CPU負載很高了,需要考慮增加新的服務器。 內存使用率內存使用率反應的是內存的使用情況。內存用于存放程序的代碼及數據,一般分為物理內存和虛擬內存,其中物理內存指的是服務器的內存,而虛擬內存指的是硬盤的一塊空間。當物理內存使用率達到100%時將會使用虛擬內存。需要注意的是,虛擬內存的讀寫速度遠遠低于物理內存,如果程序被放在了虛擬內存執行,那么程序的執行效率會變得很低。 一般而言,服務器的物理內存應該保持在80%以下,虛擬內存使用率保持在0%。 服務器內存使用情況還是可以通過hop工具進行查看
上面顯示了服務器的內存使用情況:總內存16G,使用了10G左右,內存使用率62%,可以繼續使用,同時關閉了Swap虛擬內存。 在下 磁盤I/O磁盤I/O指的是磁盤的讀寫,在軟件系統中,日志、文件操作、數據庫操作都會造成磁盤讀寫壓力,其中又以數據庫操作為甚,在高并發情況下往往數據庫會首先成為系統的瓶頸。 磁盤監控我推薦大家使用iostat工具,可以很方便查看磁盤的使用情況。 使用iostat查看磁盤I/O首先我們需要安裝
安裝完成后我們就可以通過
輸入
平均負載平均負載指的是單位時間內平均的活躍進程數,是一個表示服務器負載的指標。一般情況下需要保證平均負載的值小于當前服務器的CPU核數。 同樣的,查看服務器平均負載我們也可以使用
一般情況下服務器的平均負載需要小于當前服務器的CPU核數,為了應對突發狀況,服務器的平均負載應該在75%即3 以下,很顯然,上圖這臺服務器平均負載超過了75%,需要考慮提升性能了。 網絡使用情況網絡使用情況也是監控的重要指標。當帶寬不足時會大大增加請求的響應時間。為了防止突發性并發壓力,應該保證服務器的帶寬使用率在80%以上。這里需要注意的是,物理網卡限制了服務器所能使用的最大寬帶。 查看網絡使用情況我推薦使用 使用nload查看網絡首先需要安裝nload,以centos為例
安裝完成后我們直接運行
輸入 指標說明:
服務器內核參數調優光有強大的物理性能是不夠的,還需要對內核參數進行調優,這樣才能在高并發壓力下充分體現服務器應有的性能。當然,并不是所有的服務器都需要做高并發性能調優,一般來說,只需要對要處理高并發請求的服務器進行內核參數調優即可,常見的包括:前端服務器,后端服務器,數據庫服務器。 服務器常見的調優參數主要有兩個:單個進程最大打開文件數 和 TCP相關設置。 單個進程最大打開文件數修改單個文件最大打開文件數,只需要編輯
其中 TCP相關設置修改TCP相關參數,可以優化TCP高并發通信,編輯
閱讀原文:原文鏈接 該文章在 2025/7/1 23:09:26 編輯過 |
關鍵字查詢
相關文章
正在查詢... |