亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

服務(wù)器配置選擇測(cè)試和性能如何優(yōu)化?

admin
2025年6月29日 15:22 本文熱度 195

聽多了架構(gòu)優(yōu)化,接口優(yōu)化,數(shù)據(jù)庫優(yōu)化,今天我們來聊聊服務(wù)器優(yōu)化。

我們開發(fā)的軟件服務(wù)需要在服務(wù)器上運(yùn)行,所以服務(wù)器性能代表了軟件的性能上限,因此服務(wù)器性能調(diào)優(yōu)是個(gè)十分重要的環(huán)節(jié),然而大部分同學(xué)對(duì)服務(wù)器性能調(diào)優(yōu)關(guān)注的較少,今天從3個(gè)部分對(duì)服務(wù)器性能調(diào)優(yōu)進(jìn)行介紹,分別是:服務(wù)器配置選擇,服務(wù)器負(fù)載分析,服務(wù)器內(nèi)核參數(shù)調(diào)優(yōu)。

服務(wù)器配置選擇

服務(wù)器一般是由CPU、內(nèi)存、磁盤和網(wǎng)卡組成,因此選擇服務(wù)器配置就是選擇CPU核數(shù)、內(nèi)存大小、磁盤大小及類型、網(wǎng)絡(luò)帶寬。但是,服務(wù)器配置的選擇是很難標(biāo)準(zhǔn)化的,也就是說很難推斷出“一臺(tái)需要達(dá)到1000TPS的后端服務(wù)器”的配置應(yīng)該是什么樣的。因?yàn)檐浖淖罱K運(yùn)行性能與軟件的實(shí)現(xiàn)方式是緊密相關(guān)的,即使是同一個(gè)后端應(yīng)用程序中的兩個(gè)接口,由于具體功能的差別,性能也會(huì)有所差別。

因此,服務(wù)器配置的選擇應(yīng)該基于具體的測(cè)試結(jié)果。一開始可以選用配置較低的服務(wù)器做調(diào)優(yōu)和測(cè)試,并以該服務(wù)器的測(cè)試結(jié)果作為選擇服務(wù)器的依據(jù)。

以一個(gè)訂單業(yè)務(wù)為例,經(jīng)過測(cè)試后,一臺(tái)配置為4核 CPU 、16GB內(nèi)存、10Mbps帶寬、50GB機(jī)械磁盤的服務(wù)器的測(cè)試結(jié)果為:支持50并發(fā)量和300TPS吞吐量(增大并發(fā)量后會(huì)出現(xiàn)超時(shí)報(bào)錯(cuò))。而在壓力測(cè)試過程中, CPU 的使用率接近75%,內(nèi)存使用率在 50%以下,帶寬使用率在50%以下,除去日志以外無磁盤操作。

因此可以認(rèn)為,一臺(tái)配置為4核 CPU ( CPU 使用率需要在75%以下)、8GB內(nèi)存(內(nèi)存使用率可以接近100%)、 5Mbps 帶寬(帶寬使用率可以接近100%)的服務(wù)器,可以滿足訂單接口支持50并發(fā)量、300TPS吞吐量的壓力。

如果需要達(dá)到200并發(fā)數(shù)、2400TPS吞吐量的目標(biāo)的話,則需要8臺(tái)配置為4核 CPU 、8GB內(nèi)存、5Mbps帶寬的服務(wù)器,或者1臺(tái)配置為32核 CPU 、64GB內(nèi)存、40Mbps帶寬的服務(wù)器。當(dāng)然,最終的服務(wù)器配置還是需要通過測(cè)試來驗(yàn)證。

注意:在以上訂單接口的例子中,后端服務(wù)器和數(shù)據(jù)庫等服務(wù)器需要一起調(diào)試,避免后端服務(wù)器性能過剩,而數(shù)據(jù)庫等服務(wù)器性能不足的情況發(fā)生。另外,以上選擇服務(wù)器配置的方法不一定適用于所有場(chǎng)景,請(qǐng)斟酌參考。

服務(wù)器負(fù)載分析

在性能調(diào)優(yōu)時(shí),需要先對(duì)服務(wù)器負(fù)載進(jìn)行分析,通常而言,我們主要分析CPU使用率、內(nèi)存使用率、磁盤I/O,服務(wù)器負(fù)載和帶寬使用情況。

CPU使用率

CPU使用率反應(yīng)的是CPU的忙碌情況。當(dāng)CPU達(dá)到100%時(shí),部分進(jìn)程會(huì)進(jìn)入等待狀態(tài),CPU暫時(shí)不會(huì)對(duì)其進(jìn)行處理。在實(shí)際情況下,為了應(yīng)對(duì)一下突發(fā)性的請(qǐng)求壓力,服務(wù)器CPU使用率一般需要在75%以下。如果一臺(tái)服務(wù)器的CPU使用率多次高于75%,這時(shí)候就考慮增加新的服務(wù)器。

監(jiān)控CPU使用率我推薦大家使用htop工具,可以非常直觀看到CPU使用率、內(nèi)存使用率、及負(fù)載等信息。

使用htop查看CPU負(fù)載

首先我們需要安裝htop,以centos為例,安裝命令如下:

yum install htop -y

安裝完成后我們就可以通過htop命令觀察CPU負(fù)載了

htop

輸入htop命令后我們可以很直觀的看到CPU負(fù)載情況,該命令的CPU使用率會(huì)以多個(gè)核作為單位進(jìn)行顯示。操作系統(tǒng)機(jī)會(huì)自動(dòng)分配多個(gè)核的負(fù)載,當(dāng)所有核的CPU使用率都超過75%時(shí)才能認(rèn)為服務(wù)器的CPU使用率已經(jīng)超過75%。

cpu負(fù)載

如上圖所示,這是一個(gè)4核CPU服務(wù)器,在截圖的時(shí)候其中3核CPU使用率都超過了75%,再觀察一會(huì)發(fā)現(xiàn)所有CPU的使用率都在85%左右徘徊,說明CPU負(fù)載很高了,需要考慮增加新的服務(wù)器。

內(nèi)存使用率

內(nèi)存使用率反應(yīng)的是內(nèi)存的使用情況。內(nèi)存用于存放程序的代碼及數(shù)據(jù),一般分為物理內(nèi)存和虛擬內(nèi)存,其中物理內(nèi)存指的是服務(wù)器的內(nèi)存,而虛擬內(nèi)存指的是硬盤的一塊空間。當(dāng)物理內(nèi)存使用率達(dá)到100%時(shí)將會(huì)使用虛擬內(nèi)存。需要注意的是,虛擬內(nèi)存的讀寫速度遠(yuǎn)遠(yuǎn)低于物理內(nèi)存,如果程序被放在了虛擬內(nèi)存執(zhí)行,那么程序的執(zhí)行效率會(huì)變得很低。

一般而言,服務(wù)器的物理內(nèi)存應(yīng)該保持在80%以下,虛擬內(nèi)存使用率保持在0%。

服務(wù)器內(nèi)存使用情況還是可以通過hop工具進(jìn)行查看

內(nèi)存使用率

上面顯示了服務(wù)器的內(nèi)存使用情況:總內(nèi)存16G,使用了10G左右,內(nèi)存使用率62%,可以繼續(xù)使用,同時(shí)關(guān)閉了Swap虛擬內(nèi)存。

在下MEM%欄中顯示了單個(gè)進(jìn)程的內(nèi)存使用率。

磁盤I/O

磁盤I/O指的是磁盤的讀寫,在軟件系統(tǒng)中,日志、文件操作、數(shù)據(jù)庫操作都會(huì)造成磁盤讀寫壓力,其中又以數(shù)據(jù)庫操作為甚,在高并發(fā)情況下往往數(shù)據(jù)庫會(huì)首先成為系統(tǒng)的瓶頸。

磁盤監(jiān)控我推薦大家使用iostat工具,可以很方便查看磁盤的使用情況。

使用iostat查看磁盤I/O

首先我們需要安裝iostat,以centos為例,安裝命令如下:

yum install sysstat -y

安裝完成后我們就可以通過iostat命令磁盤使用情況了。

# 查看磁盤總體讀寫情況, 1代表每1秒讀取一次數(shù)據(jù)
iostat -x 1

磁盤IO

輸入iostat命令后,磁盤總體讀寫情況如上所示。磁盤負(fù)載主要關(guān)注2個(gè)指標(biāo):%idle,%util

  • %idle:表示CPU除去等待磁盤I/O以外的空閑時(shí)間百分比,這個(gè)指標(biāo)應(yīng)該要保證在70%以上
  • %util:該設(shè)備用于I/O操作的時(shí)間百分比,這個(gè)指標(biāo)需要保證在70%以下,當(dāng)?shù)竭_(dá)100%時(shí)表示已經(jīng)滿負(fù)載。為了降低磁盤負(fù)載,可以采用性能更高的磁盤(OSD,PCIE)或者降低磁盤的操作頻率(異步寫、合并寫)

平均負(fù)載

平均負(fù)載指的是單位時(shí)間內(nèi)平均的活躍進(jìn)程數(shù),是一個(gè)表示服務(wù)器負(fù)載的指標(biāo)。一般情況下需要保證平均負(fù)載的值小于當(dāng)前服務(wù)器的CPU核數(shù)。

同樣的,查看服務(wù)器平均負(fù)載我們也可以使用htop命令

在這里我們主要關(guān)注Load average指標(biāo),上圖有3個(gè)數(shù)字,分別代表1分鐘,5分鐘,15分鐘的平均負(fù)載。

一般情況下服務(wù)器的平均負(fù)載需要小于當(dāng)前服務(wù)器的CPU核數(shù),為了應(yīng)對(duì)突發(fā)狀況,服務(wù)器的平均負(fù)載應(yīng)該在75%即3 以下,很顯然,上圖這臺(tái)服務(wù)器平均負(fù)載超過了75%,需要考慮提升性能了。

網(wǎng)絡(luò)使用情況

網(wǎng)絡(luò)使用情況也是監(jiān)控的重要指標(biāo)。當(dāng)帶寬不足時(shí)會(huì)大大增加請(qǐng)求的響應(yīng)時(shí)間。為了防止突發(fā)性并發(fā)壓力,應(yīng)該保證服務(wù)器的帶寬使用率在80%以上。這里需要注意的是,物理網(wǎng)卡限制了服務(wù)器所能使用的最大寬帶。

查看網(wǎng)絡(luò)使用情況我推薦使用nload工具。

使用nload查看網(wǎng)絡(luò)

首先需要安裝nload,以centos為例

yum install nload -y

安裝完成后我們直接運(yùn)行nload

nload

輸入nload命令后,網(wǎng)絡(luò)使用情況如上圖所示。其中,網(wǎng)絡(luò)使用情況分為流入網(wǎng)卡的數(shù)據(jù)與流出網(wǎng)卡的數(shù)據(jù)。流入網(wǎng)卡的對(duì)應(yīng)下行帶寬的網(wǎng)速,流出網(wǎng)卡的數(shù)據(jù)對(duì)應(yīng)上行帶寬的網(wǎng)速。如果 “當(dāng)前網(wǎng)速” 持續(xù)接近 “最大網(wǎng)速” 時(shí),代表帶寬使用率已經(jīng)接近100%。

指標(biāo)說明:

  • Curr:當(dāng)前網(wǎng)速
  • Avg:平均網(wǎng)速
  • Min:最小網(wǎng)速
  • Max:最大網(wǎng)速
  • Ttl:總流量

服務(wù)器內(nèi)核參數(shù)調(diào)優(yōu)

光有強(qiáng)大的物理性能是不夠的,還需要對(duì)內(nèi)核參數(shù)進(jìn)行調(diào)優(yōu),這樣才能在高并發(fā)壓力下充分體現(xiàn)服務(wù)器應(yīng)有的性能。當(dāng)然,并不是所有的服務(wù)器都需要做高并發(fā)性能調(diào)優(yōu),一般來說,只需要對(duì)要處理高并發(fā)請(qǐng)求的服務(wù)器進(jìn)行內(nèi)核參數(shù)調(diào)優(yōu)即可,常見的包括:前端服務(wù)器,后端服務(wù)器,數(shù)據(jù)庫服務(wù)器。

服務(wù)器常見的調(diào)優(yōu)參數(shù)主要有兩個(gè):?jiǎn)蝹€(gè)進(jìn)程最大打開文件數(shù) 和 TCP相關(guān)設(shè)置。

單個(gè)進(jìn)程最大打開文件數(shù)

修改單個(gè)文件最大打開文件數(shù),只需要編輯/etc/security/limits.conf文件,在文件末尾加上以下四句

* soft	nofile	65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

其中* 代表所有用戶,65536代表修改的值,重啟后生效。

TCP相關(guān)設(shè)置

修改TCP相關(guān)參數(shù),可以優(yōu)化TCP高并發(fā)通信,編輯/etc/sysctl.conf文件,添加以下內(nèi)容

# 為防止洪水攻擊,高并發(fā)系統(tǒng)需要將此項(xiàng)關(guān)閉
net.ipv4.tcp_syncookies = 0

# 開啟TCP連接重用,允許處理TIME-WAIT狀態(tài)的連接重新用于新的TCP連接
net.ipv4.tcp_tw_reuse = 1

# 開啟快速回收TCP連接中處于TIME-WAIT狀態(tài)的連接
net.ipv4.tcp_tw_recycle = 1

#修改超時(shí)時(shí)間( s ),該值表示如果連接由本端關(guān)閉,則連接處于 FIN-WAIT-2狀態(tài)的時(shí)間為 
net.ipv4.tcp_fin_timeout = 30

#當(dāng) keepalive(長連接)啟用的時(shí)候,TCP發(fā)送 keepalive 消息(探測(cè)包)的時(shí)間間隔( s ),默認(rèn)為2個(gè)小時(shí)
net.ipv4.tcp_keepalive_time =1200

#服務(wù)器對(duì)外連接的端口范圍,影響該服務(wù)器與其他服務(wù)器的連接數(shù)
net.ipv4.ip_local_port_range =102465535

#SYN隊(duì)列的長度,可以容納更多等待連接的網(wǎng)絡(luò)連接數(shù),默認(rèn)為1024 
net.ipv4.tcp_max_syn_backlog = 65535

#保持 TIME_WAIT 狀態(tài)連接的最大數(shù)量,如果超過此值,TIME_WAIT 將立刻被清除并打印警告信息,默認(rèn)為180000
net.ipv4.tcp_max_tw_buckets =5000

#每個(gè)網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時(shí),允許送到隊(duì)列的數(shù)據(jù)包的最大數(shù)目
net.core.netdev_max_backlog =65535

# TCP最大連接數(shù)
net.core.somaxconn = 65535

#預(yù)留用于接收緩沖的內(nèi)存默認(rèn)值(字節(jié)) 
net.core.rmem_default = 8388608

#預(yù)留用于接收緩沖的內(nèi)存最大值(字節(jié)) 
net.core.rmem_max = 16777216

#預(yù)留用于發(fā)送緩沖的內(nèi)存默認(rèn)值(字節(jié)) 
net.core.wmem_default = 8388608

#預(yù)留用于發(fā)送緩沖的內(nèi)存最大值(字節(jié)) 
net.core.wmem_maX = 16777216

#避免時(shí)間戳異常
net.ipv4.tcp_timestamps = 0

#系統(tǒng)中最多有多少個(gè) TCP 套接字不被關(guān)聯(lián)到任何一個(gè)用戶文件句柄上,如果超過這個(gè)數(shù)字,連接將即刻被復(fù)位并打印警告信息,這個(gè)限制僅僅是為了防止簡(jiǎn)單的DoS 攻擊
net.ipv4.tcp_max_orphans =3276800


閱讀原文:原文鏈接


該文章在 2025/7/1 23:09:26 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved