新聞中心
網(wǎng)絡(luò)丟包問題是網(wǎng)絡(luò)中經(jīng)常會遇到的一個問題,它會導(dǎo)致數(shù)據(jù)傳輸中斷或者延遲,從而對網(wǎng)絡(luò)應(yīng)用帶來嚴重的影響。Linux內(nèi)核作為一種重要的網(wǎng)絡(luò)操作系統(tǒng),其對網(wǎng)絡(luò)丟包問題的處理方式是非常優(yōu)秀的。本文將介紹,包括Linux內(nèi)核如何檢測和解決網(wǎng)絡(luò)丟包問題、Linux內(nèi)核的傳輸控制協(xié)議(TCP)流量控制和擁塞控制等內(nèi)容。

一、Linux內(nèi)核如何檢測和解決網(wǎng)絡(luò)丟包問題
Linux內(nèi)核對網(wǎng)絡(luò)丟包的檢測主要是通過網(wǎng)絡(luò)協(xié)議棧中的傳輸層協(xié)議TCP來實現(xiàn)的。當TCP從網(wǎng)絡(luò)中接收到一個數(shù)據(jù)包時,它會對數(shù)據(jù)包的頭部進行一個檢查,來保證數(shù)據(jù)的完整性和正確性。如果網(wǎng)絡(luò)丟包導(dǎo)致數(shù)據(jù)包被損壞或者丟失,TCP會向數(shù)據(jù)包的發(fā)送端回復(fù)一個重傳請求,以確保數(shù)據(jù)的傳輸正確性。
另外,在Linux內(nèi)核中也有一種“糾錯碼(Error Correction Code,ECC)”技術(shù),可以用來檢測和糾正數(shù)據(jù)包中的錯誤,從而解決網(wǎng)絡(luò)丟包問題。這種技術(shù)主要用于內(nèi)存系統(tǒng)和磁盤系統(tǒng)中,通過增加校驗位的方式來實現(xiàn),可以修復(fù)一定程度的數(shù)據(jù)丟失和錯誤。
二、Linux內(nèi)核的傳輸控制協(xié)議(TCP)流量控制
網(wǎng)絡(luò)丟包問題的產(chǎn)生往往是由于網(wǎng)絡(luò)擁塞引起的。擁塞的發(fā)生原因一般是網(wǎng)絡(luò)吞吐量超過了網(wǎng)絡(luò)帶寬的負荷能力,從而導(dǎo)致數(shù)據(jù)包在傳輸過程中被丟失。為了避免網(wǎng)絡(luò)擁塞問題的發(fā)生,Linux內(nèi)核中采用了傳輸控制協(xié)議(TCP)流量控制的技術(shù)。
TCP流量控制是通過控制數(shù)據(jù)包的發(fā)送速率來避免網(wǎng)絡(luò)擁塞問題的發(fā)生。TCP通過在傳輸過程中不斷的調(diào)整發(fā)送窗口的大小來進行流量控制,從而保持網(wǎng)絡(luò)的穩(wěn)定和快速傳輸。具體來說,在TCP的傳輸過程中,接收端會向發(fā)送端發(fā)送一個回應(yīng)報文來告訴發(fā)送端接收到數(shù)據(jù)的情況,從而調(diào)整發(fā)送窗口的大小,控制數(shù)據(jù)的發(fā)送速率。如果接收端的緩沖區(qū)滿了,發(fā)送端就會停止發(fā)送數(shù)據(jù),從而避免網(wǎng)絡(luò)擁塞和丟包的問題。
三、Linux內(nèi)核的擁塞控制
除了傳輸控制協(xié)議(TCP)流量控制技術(shù)外,Linux內(nèi)核還采用了擁塞控制技術(shù)來應(yīng)對網(wǎng)絡(luò)擁塞問題。擁塞控制技術(shù)主要是通過控制數(shù)據(jù)包的發(fā)送速率來避免網(wǎng)絡(luò)擁塞的發(fā)生。
在擁塞控制技術(shù)中,Linux內(nèi)核采用了一種名為“擁塞窗口”的機制來控制數(shù)據(jù)包的發(fā)送速率。擁塞窗口的大小是根據(jù)網(wǎng)絡(luò)擁塞的程度來不斷調(diào)整的。當網(wǎng)絡(luò)擁塞的程度較輕時,擁塞窗口會逐漸擴大,從而加快數(shù)據(jù)傳輸?shù)乃俣龋划斁W(wǎng)絡(luò)擁塞的程度較重時,擁塞窗口會自動縮小,從而控制數(shù)據(jù)傳輸速率,避免數(shù)據(jù)包的丟失和重傳的發(fā)生。
網(wǎng)絡(luò)丟包問題是網(wǎng)絡(luò)應(yīng)用中一個非常常見的問題,它會導(dǎo)致數(shù)據(jù)傳輸中斷或者延遲,從而對網(wǎng)絡(luò)應(yīng)用帶來嚴重的影響。Linux內(nèi)核作為一種重要的網(wǎng)絡(luò)操作系統(tǒng),其對網(wǎng)絡(luò)丟包問題的處理方式是非常優(yōu)秀的。Linux內(nèi)核主要通過網(wǎng)絡(luò)協(xié)議棧中的傳輸層協(xié)議TCP來檢測和解決網(wǎng)絡(luò)丟包問題,同時還采用了傳輸控制協(xié)議(TCP)流量控制和擁塞控制等技術(shù)來應(yīng)對網(wǎng)絡(luò)擁塞問題。對于網(wǎng)絡(luò)應(yīng)用來說,了解Linux內(nèi)核的網(wǎng)絡(luò)丟包處理機制非常重要,可以更好地解決網(wǎng)絡(luò)中的各種問題。
相關(guān)問題拓展閱讀:
- linux 安裝oracle11g 丟包怎么解決,在線等
- 怎樣分析linux的性能指標
linux 安裝oracle11g 丟包怎么解決,在線等
有l(wèi)inux系統(tǒng)盤么?做成yum源,然后yum -y install 包名 ,即可解決。
根據(jù)先決條件檢測出沒有的程序包可用系伏枯察統(tǒng)光盤來添加。一般對redhat5.x支缺茄持較好,在64位安裝中有相應(yīng)包雖然安裝也提示敗大沒有,可忽略。
這個丟包是指環(huán)境包缺少,還是指源安裝包丟包;
怎樣分析linux的性能指標
不知道你是不是指性能測試,使攔寬用UnixBench跑一下就有者衡灶了。
各測試指首扮標的說明請看鏈接
LR
監(jiān)控
UNIX/Linux
系統(tǒng)方法
一、準備工作:
1.
可以通過兩種方法驗證服務(wù)器上是否配置
rstatd
守護程序:
①使用
rup
命令,它用于報告計算機的各種統(tǒng)計信息,其中就包括
rstatd
的配置信息。使用命
令
rup
10.130.61.203,
此處
10.130.61.203
是要監(jiān)視的
linux/Unix
服務(wù)器的
IP
,如果該命令返回相關(guān)的
統(tǒng)計信息。則表示已經(jīng)配置并且激活了
rstatd
守護進程;若未返回有意義的統(tǒng)計信息,或者出現(xiàn)一
條錯誤報告,則表示
rstatd
守護進程尚未被配置或有問題。
②使用
find
命令
#find / -name rpc.rstatd,
該命令用于查找系統(tǒng)中是否存在
rpc.rstatd
文件,如果沒有,說明系統(tǒng)沒
有安裝
rstatd
守護程序。
.
linux
需要下載
個包:
(
)
rpc.rstatd-4.0.1.tar.gz
(
)
rsh-0.17-14.i386.rpm
(
)
rsh-server-0.17-14.i386.rpm
.下載并安裝
rstatd
如果服務(wù)器上沒有安裝
rstatd
程序(一般來說
LINUX
都沒有安裝)
,需伍凳要下載一個包才有這個服
務(wù)
,
包
名
字
是
rpc.rstatd-4.0.1.tar.gz.
這
是
一
個
源
碼
,
需
要
編
譯
,
下
載
并
安
裝
rstatd
(
可
以
在
這個地址下載)下載后,開始安裝,安裝步驟如下:
tar -xzvf rpc.rstatd-4.0.1.tar.gz
cd rpc.rstatd-4.0.1/
./configure
—配置操作
make
—進行編譯
make install
—開始安裝
rpc.rstatd
—啟動
rstatd
進程
“
rpcinfo -p
”命令來查看當前系統(tǒng)是否已經(jīng)啟動了
rstatd
守護進程
只要保證
Linux
機器上的進程里有
rstatd
和
xinetd
這二個服務(wù)就可以用
LR
去監(jiān)視了,通過以下
兩點可以檢查是否啟動:
)檢查是否啟動
: rsh server
監(jiān)聽的
TCP
是
514
。
# netstat -an |grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
如果能看到
514
在監(jiān)聽說明
rsh
服務(wù)器已經(jīng)啟動。
)檢查是否啟動
: rstatd
輸入命令
: rpcinfo -p
如果能看到類似如下信息:
程序版本協(xié)議端口
5
udp
937
rstatd
4
udp
937
rstatd
3
udp
937
rstatd
2
udp
937
rstatd
1
udp
937
rstatd
那就說明
rstatd
服務(wù)啟動了
,(
當然這里也可以用
ps ax
代替
)
.安裝
rsh
和
rsh-server
兩個服務(wù)包方法
a.
卸載
rsh
# rpm
–
q
rsh
查看版本號
# rpm
-e
版本號
卸載該版本。
b
.安裝
# rpm
–
ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm
在啟動
rpc.rstatd
時,
會報錯
“
Cannot register service: RPC: Unable to receive; errno = Ction refused
”
。
解決方法如下:
# /etc/init.d/portmap start
# /etc/init.d/nfs start
然后再次啟動
rpc.rstatd
就好了。
.返橘迅安裝
xinetd
方法:
①查看
xinetd
服務(wù):
# rpm -q xinetd
xinetd-2.3.14-10.el5
②安裝
xinetd
服務(wù):
# yum install xinetd
如果安裝不起
xinetd
服務(wù),執(zhí)行下列操作命令后再次執(zhí)行
yum install xinetd
命令進行安裝:
yum clean packages
清除緩存目錄下的軟件包
yum clean headers
清除漏此緩存目錄下的
headers
yum clean oldheaders
清除緩存目錄下舊的
headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders)
清除緩存目錄下的軟件包
及舊的
headers
。
.啟動
xinetd
服務(wù):
在有的系統(tǒng)中,通過如下命令重啟:
# service xinetd reload
# /in/service xinetd rstart
在
suse linux
中如下操作:
cd /etc/init.d/xinetd restart
)
安裝完成后配置
rstatd
目標守護進程
xinetd,
它的主配置文件是
/etc/xinetd.conf ,
它里面內(nèi)容是
一些如下的基本信息:
#
# xinetd.conf
#
# Copyright (c)SuSE GmbH Nuernberg, Germany.
# Copyright (c) 2023 SuSE Linux AG, Nuernberg, Germany.
#
defaults
{
log_type
= FILE /var/log/xinetd.log
log_on_success = HOST EXIT DURATION
log_on_failure = HOST ATTEMPT
#
only_from
= localhost
instances
= 30
cps
=
#
# The specification of an interface is interesting, if we are on a firewall.
# For example, if you only want to provide services from an internal
# network interface, you may specify your internal interfaces IP-Address.
#
#
interface
= 127.0.0.1
}
includedir /etc/xinetd.d
我們這里需要修改的是
/etc/xinetd.d/
下的三個
conf
文件
rlogin
,rsh,rexec
這三個配置文件
,
打這
三個文件里的
disable = yes
都改成
disable = no ( disabled
用在默認的
{}
中禁止服務(wù)
)
或是把
# default:
off
都設(shè)置成
on
這個的意思就是在
xinetd
啟動的時候默認都啟動上面的三個服務(wù)
!
說明:我自己在配置時,沒有
disable = yes
這項,我就將
# default: off
改為:
default: on
,重啟后
(cd /etc/init.d/./xinetd restart
)通過
netstat -an |grep 514
查看,沒有返回。然后,我就手動在三個文
件中最后一行加入
disable
=
no
,再重啟
xinetd
,再使用
netstat
-an
|grep
514
查看,得到
tcp
0
0
0.0.0.0:514 0.0.0.0:* LISTEN
結(jié)果,表明
rsh
服務(wù)器已經(jīng)啟動。
看到網(wǎng)上有的地方說使用如下命令:
# service xinetd reload
# /in/service xinetd rstart
不知道是在什么系統(tǒng)用的。
二、監(jiān)控
linux
資源:
在
controller
中,將
System resource Graphs
中的
Unix resources
拖到右側(cè)的監(jiān)控區(qū)域中,并單擊
鼠標右鍵選擇“
Add
Measurements
”
,
在彈出的對話框中輸入被監(jiān)控的
linux
系統(tǒng)的
IP
地址,然后選
擇需要監(jiān)控的性能指標,并點擊“確定”
,出現(xiàn)如下結(jié)果:
Monitor name :UNIX Resources. Cannot initialize the monitoring on 10.10.15.62.
Error while creating the RPC client. Ensure that the machine can be connected and that it runs the
rstat daemon (use rpcinfo utility for this verification).
Detailed error: RPC: Failed to create RPC client.
RPC-TCP: Failed to establish RPC server address.
RPC-TCP: Failed to communicate with the portmapper on host ‘10.10.15.62’.
RPC: RPC call failed.
RPC-TCP: recv()/recvfrom() failed.
RPC-TCP: Timeout reached. (entry point: CFactory::Initialize).
檢查原因,發(fā)現(xiàn)是
Linux
系統(tǒng)中的防火墻開啟了并且阻擋了
LoadRunner
監(jiān)控
Linux
系統(tǒng)的資源,
因此要將防火墻關(guān)閉。
關(guān)閉防火墻:
# /etc/init.d/iptables stop;
三、監(jiān)控
UNIX
lr
監(jiān)控
UNIX
,
UNIX
先啟動一
rstatd
服務(wù)
以下是在
IBM AIX
系統(tǒng)中啟動
rstatd
服務(wù)的方法:
.使用
telnet
以
root
用戶的身份登錄入
AIX
系統(tǒng)
.在命令行提示符下輸入:
vi /etc/inetd.conf
.查找
rstatd
,找到
#rstatd
sunrpc_udp
udp
wait
root /usr/in/rpc.rstatd rstatd
、將
#
去掉
、
:wq
保存修改結(jié)果
、命令提示符下輸入:
refresh
–
s inetd
重新啟動服務(wù)。
這樣使用
loadrunner
就可以監(jiān)視
AIX
系統(tǒng)的性能情況了。
注:在
HP UNIX
系統(tǒng)上編輯完
inetd.conf
后,重啟
inetd
服務(wù)需要輸入
inetd -c
UNIX
上也可以用
rup
命令查看
rstatd
程序是否被配置并激活
若
rstatd
程序已經(jīng)運行,
重啟時,
先查看進程
ps -ef |grep inet
,
然后殺掉進程,
再
refresh
–
s inetd
進行重啟。
一、CPU
1、良好狀態(tài)指標
CPU利用率:User Time
Time
上下文切換:與CPU利用率相關(guān)聯(lián),如果CPU利用率狀態(tài)良好,大量的上下文切換也是孝拆可以接受的。
可運行隊列:每個處理器的可運行隊列
2、監(jiān)控工具
vmstat
$ vmstat 1
procemoryswapiosystem–
—–cpu——
r b swpd free buff cache si so bi bo in cs
us sy id wa st
重要參數(shù):
r,run queue,可運行隊列的線程數(shù),這些線程都是可運行狀態(tài),只不過CPU暫時不可用;
b,被blocked的進程數(shù),正在等待IO請求;
in,interrupts,被處理過的中斷數(shù)
cs,context switch,系統(tǒng)上正在做上下文切換的數(shù)目
us,用戶占用巧鄭棗CPU的百分比
sys,內(nèi)核和中斷占用CPU的百分比
id,CPU完全空閑的百分比
上例可得:
sy高us低,以及高頻度的上下文切換(cs),說明應(yīng)用程序進行了大量的系統(tǒng)調(diào)用;
這臺4核機器的r應(yīng)該在12個以內(nèi),現(xiàn)在r在14個線程以上,此時CPU負荷很重。
查看某個進程占用的CPU資源
$ while :; do ps -eo pid,ni,pri,pcpu,psr,comm
| grep ‘db_server_login’; sleep 1;
done
PID NIPRI %CPU PSR COMMAND
23 0.0 0
db_server_login
23 0.0 3
db_server_login
23 0.0 2
db_server_login
23 0.0 2
db_server_login
23 0.0 3
db_server_login
23 0.0 0
db_server_login
……
二、Memory
1、良好狀態(tài)指標
swap
in
(si)
==
0,swap
out
(so)叢咐
==
應(yīng)用程序可用內(nèi)存/系統(tǒng)物理內(nèi)存
70%
2、監(jiān)控工具
vmstat
$ vmstat 1
procemoryswapiosystem–
—–cpu——
r b swpd free buff cache si so bi bo in csus
sy id wa st
3821
95 1
重要參數(shù):
swpd,已使用的 SWAP 空間大小,KB 為單位;
free,可用的物理內(nèi)存大小,KB 為單位;
buff,物理內(nèi)存用來緩存讀寫操作的buffer大小,KB 為單位;
cache,物理內(nèi)存用來緩存進程地址空間的 cache 大小,KB 為單位;
si,數(shù)據(jù)從 SWAP 讀取到 RAM(swap in)的大小,KB 為單位;
so,數(shù)據(jù)從 RAM 寫到 SWAP(swap out)的大小,KB 為單位。
上例可得:
物理可用內(nèi)存 free 基本沒什么顯著變化,swapd逐步增加,說明最小可用的內(nèi)存始終保持在 256MB(物理內(nèi)存大小) * 10% = 2.56MB 左右,當臟頁達到10%的時候就開始大量使用swap。
free
$ free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
三、磁盤IO
1、良好狀態(tài)指標
iowait %
提高命中率的一個簡單方式就是增大文件緩存區(qū)面積,緩存區(qū)越大預(yù)存的頁面就越多,命中率也越高。
Linux 內(nèi)核希望能盡可能產(chǎn)生次缺頁中斷(從文件緩存區(qū)讀),并且能盡可能避免主缺頁中斷(從硬盤讀),這樣隨著次缺頁中斷的增多,文件緩存區(qū)也逐步增大,直到系統(tǒng)只有少量可用物理內(nèi)存的時候 Linux 才開始釋放一些不用的頁。
2、監(jiān)控工具
查看物理內(nèi)存和文件緩存情況
$ cat /proc/meminfo
MemTotal:kB
MemFree: kB
Buffers: kB
Cached:8 kB
這臺服務(wù)器總共有 8GB 物理內(nèi)存(MemTotal),3GB 左右可用內(nèi)存(MemFree),343MB左右用來做磁盤緩存(Buffers),4GB左右用來做文件緩存區(qū)(Cached)。
sar
$ sar -d 2 3
Linux 2.6.9-42.ELp (webserver) 11/30/2023_i686_ (8 CPU)
11:09:33 PM DEV tps rd_sec/s wr_sec/s avgrq-szavgqu-sz await svctm
%util
11:09:35 PM dev8-0 0.00 0.00 0.00 0.00 0.00 0.000.00 0.00
11:09:35 PM DEV tps rd_sec/s wr_sec/s avgrq-szavgqu-sz await svctm
%util
11:09:37 PM dev8-0 1.00 0.00 12.00 12.00 0.000.00 0.00 0.00
11:09:37 PM DEV tps rd_sec/s wr_sec/s avgrq-szavgqu-sz await svctm
%util
11:09:39 PM dev8-0 1.99 0.00 47.76 24.00 0.000.50 0.25 0.05
Average: DEV tpsrd_sec/s wr_sec/s avgrq-sz
avgqu-sz await svctm %util
Average: dev8-0 1.00 0.00 19.97 20.00 0.00 0.330.17 0.02
重要參數(shù):
await表示平均每次設(shè)備I/O操作的等待時間(以毫秒為單位)。
svctm表示平均每次設(shè)備I/O操作的服務(wù)時間(以毫秒為單位)。
%util表示一秒中有百分之幾的時間用于I/O操作。
如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高于svctm的值,則表示I/O隊列等待太長,系統(tǒng)上運行的應(yīng)用程序?qū)⒆兟?/p>
如果%util接近100%,表示磁盤產(chǎn)生的I/O請求太多,I/O系統(tǒng)已經(jīng)滿負荷的在工作,該磁盤可能存在瓶頸。
四、Network IO
對于UDP
1、良好狀態(tài)指標
接收、發(fā)送緩沖區(qū)不長時間有等待處理的網(wǎng)絡(luò)包
2、監(jiān)控工具
netstat
對于UDP服務(wù),查看所有監(jiān)聽的UDP端口的網(wǎng)絡(luò)情況
$ watch netstat -lunp
Proto Recv-Q Send-Q Local
Address
Foreign
Address
State
PID/Program name
udp
0
0.0.0.0:
0.0.0.0:*
–
udp
0
0.0.0.0:
0.0.0.0:*
–
udp
0
0.0.0.0:
0.0.0.0:*
–
udp
0
0.0.0.0:
0.0.0.0:*
–
udp
0
0.0.0.0:
0.0.0.0:*
–
udp
0
0.0.0.0:
0.0.0.0:*
–
udp
0
0.0.0.0:
0.0.0.0:*
–
udp
0
0.0.0.0:
0.0.0.0:*
–
RecvQ、SendQ為0,或者不長時間有數(shù)值是比較正常的。
對于UDP服務(wù),查看丟包情況(網(wǎng)卡收到了,但是應(yīng)用層沒有處理過來造成的丟包)
$ watch netstat -su
Udp:
packetsreceived
packetsto unknown port received.
packet
receive errors
packetssent
packet receive errors 這一項數(shù)值增長了,則表明在丟包
對于TCP(來自davidshan單衛(wèi)的經(jīng)驗,thx~~)
1、良好狀態(tài)指標
對于TCP而言,不會出現(xiàn)因為緩存不足而存在丟包的事,因為網(wǎng)絡(luò)等其他原因,導(dǎo)致丟了包,協(xié)議層也會通過重傳機制來保證丟的包到達對方。
所以,tcp而言更多的專注重傳率。
2、監(jiān)控工具
# cat /proc/net/snmp | grep Tcp:
Tcp: RtoAlgorithm RtoMin RtoMaxMaxConn ActiveOpens PassiveOpens
AttemptFails EstabResets CurrEstab InSegsOutSegs RetransSegs
InErrs OutRsts
Tcp:6800 0
849
重傳率 = RetransSegs / OutSegs
至于這個值在多少范圍內(nèi),算ok的,得看具體的業(yè)務(wù)了。
業(yè)務(wù)側(cè)更關(guān)注的是響應(yīng)時間。
性能分析工具匯總
CPU性能分析工具:
vmstat
ps
sar
time
strace
pstree
top
Memory性能分析工具:
vmstat
strace
top
ipcs
ipcrm
cat /proc/meminfo
cat /proc/slabinfo
cat /proc//maps
I/O性能分析工具:
vmstat
ipstat
repquota
quotacheck
Network性能分析工具:
ifconfig
ethereal
tethereal
iptraf
iwconfig
nfsstat
mrtg
ntop
netstat
cat /proc/sys/net
一、處理器參數(shù)
這是一個很簡單的參數(shù),它直觀的描述了每個CPU的利用率。在xSeries架構(gòu)中,如果CPU的利用率長時間的超過80%,就可能是出現(xiàn)了處理器的瓶頸。
Runable processes
這個值描述了正在準備被執(zhí)行的進程,在一個持續(xù)讓蔽時間里這個值不應(yīng)該超過物理CPU數(shù)量的10倍,否則CPU方面就可能存在瓶頸。
Blocked
描述了那些因為等待I/O操作結(jié)束而不能被執(zhí)行的進程,Blocked可能指出你正面臨I/O瓶頸。
User time
描述了處理用戶進程的百分比,包括nice time。如果User time的值很高,說明系統(tǒng)性能用在處理實際的工作。
System time
描述了CPU花費在處理內(nèi)核操作包旅旁括IRQ和軟件中斷上面的百分比。如果system time很高說明系統(tǒng)可能存在網(wǎng)絡(luò)或者驅(qū)動堆棧方面的瓶頸。一個系統(tǒng)通常只花費很少的時間去處理內(nèi)核的操作。
Idle time
描述了CPU空閑的百分比。
Nice time
描述了CPU花費在處理re-nicing進程的百分比。
Context switch
系統(tǒng)中線程之間進行交換的數(shù)量。
Waiting
CPU花費在等待I/O操作上的總時間,與blocked相似,一個系統(tǒng)不應(yīng)該花費太多的時間在等待I/O操作上,否則你應(yīng)該進一步檢測I/O子系統(tǒng)是否存在瓶頸。
Interrupts
Interrupts值包括硬Interrupts和軟Interrupts,硬Interrupts會對系統(tǒng)性能帶
來更多的不利影響。高的Interrupts值指出系統(tǒng)可能存在一個軟件的瓶頸,可能是內(nèi)核或者驅(qū)動程序。注意Interrupts值中包括CPU時鐘導(dǎo)
致的中斷(現(xiàn)代的xServer系統(tǒng)每秒1000個Interrupts值)。
二、內(nèi)存參數(shù)
Free memory
相比其他操作系統(tǒng),Linux空閑內(nèi)存的值坦鎮(zhèn)州不應(yīng)該做為一個性能參考的重要指標,因為就像我們之前提到過的,Linux內(nèi)核會分配大量沒有被使用的內(nèi)存作為文件系統(tǒng)的緩存,所以這個值通常都比較小。
Swap usage
這個值描述了已經(jīng)被使用的swap空間。Swap
usage只表示了Linux管理內(nèi)存的有效性。對識別內(nèi)存瓶頸來說,Swap In/Out才是一個比較又意義的依據(jù),如果Swap
In/Out的值長期保持在每秒200到300個頁面通常就表示系統(tǒng)可能存在內(nèi)存的瓶頸。
Buffer and cache
這個值描述了為文件系統(tǒng)和塊設(shè)備分配的緩存。注意在Red Hat Enterprise Linux
3和更早一些的版本中,大部分空閑內(nèi)存會被分配作為緩存使用。在Red Hat Enterprise Linux
4以后的版本中,你可以通過修改/proc/sys/vm中的page_cache_tuning來調(diào)整空閑內(nèi)存中作為緩存的數(shù)量。
Slabs
描述了內(nèi)核使用的內(nèi)存空間,注意內(nèi)核的頁面是不能被交換到磁盤上的。
Active versus inactive memory
提供了關(guān)于系統(tǒng)內(nèi)存的active內(nèi)存信息,Inactive內(nèi)存是被kswapd守護進程交換到磁盤上的空間。
三、網(wǎng)絡(luò)參數(shù)
Packets received and sent
這個參數(shù)表示了一個指定網(wǎng)卡接收和發(fā)送的數(shù)據(jù)包的數(shù)量。
Bytes received and sent
這個參數(shù)表示了一個指定網(wǎng)卡接收和發(fā)送的數(shù)據(jù)包的字節(jié)數(shù)。
Collisions per second
這個值提供了發(fā)生在指定網(wǎng)卡上的網(wǎng)絡(luò)沖突的數(shù)量。持續(xù)的出現(xiàn)這個值代表在網(wǎng)絡(luò)架構(gòu)上出現(xiàn)了瓶頸,而不是在服務(wù)器端出現(xiàn)的問題。在正常配置的網(wǎng)絡(luò)中沖突是非常少見的,除非用戶的網(wǎng)絡(luò)環(huán)境都是由hub組成。
Packets dropped
這個值表示了被內(nèi)核丟掉的數(shù)據(jù)包數(shù)量,可能是因為防火墻或者是網(wǎng)絡(luò)緩存的缺乏。
Overruns
Overruns表達了超出網(wǎng)絡(luò)接口緩存的次數(shù),這個參數(shù)應(yīng)該和packets dropped值聯(lián)系到一起來判斷是否存在在網(wǎng)絡(luò)緩存或者網(wǎng)絡(luò)隊列過長方面的瓶頸。
Errors
這個值記錄了標志為失敗的幀的數(shù)量。這個可能由錯誤的網(wǎng)絡(luò)配置或者部分網(wǎng)線損壞導(dǎo)致,在銅口千兆以太網(wǎng)環(huán)境中部分網(wǎng)線的損害是影響性能的一個重要因素。
四、塊設(shè)備參數(shù)
Iowait
CPU等待I/O操作所花費的時間。這個值持續(xù)很高通??赡苁荌/O瓶頸所導(dǎo)致的。
Average queue length
I/O請求的數(shù)量,通常一個磁盤隊列值為2到3為更佳情況,更高的值說明系統(tǒng)可能存在I/O瓶頸。
Average wait
響應(yīng)一個I/O操作的平均時間。Average wait包括實際I/O操作的時間和在I/O隊列里等待的時間。
Transfers per second
描述每秒執(zhí)行多少次I/O操作(包括讀和寫)。Transfers per second的值與kBytes per second結(jié)合起來可以幫助你估計系統(tǒng)的平均傳輸塊大小,這個傳輸塊大小通常和磁盤子系統(tǒng)的條帶化大小相符合可以獲得更好的性能。
Blocks read/write per second
這個值表達了每秒讀寫的blocks數(shù)量,在2.6內(nèi)核中blocks是1024bytes,在早些的內(nèi)核版本中blocks可以是不同的大小,從512bytes到4kb。
Kilobytes per second read/write
linux 看內(nèi)核丟包的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux 看內(nèi)核丟包,Linux內(nèi)核如何應(yīng)對網(wǎng)絡(luò)丟包問題,linux 安裝oracle11g 丟包怎么解決,在線等,怎樣分析linux的性能指標的信息別忘了在本站進行查找喔。
成都網(wǎng)站營銷推廣找創(chuàng)新互聯(lián),全國分站站群網(wǎng)站搭建更好做SEO營銷。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價格厚道。提供成都服務(wù)器托管租用、綿陽服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽服務(wù)器機房服務(wù)器托管租用。
本文名稱:Linux內(nèi)核如何應(yīng)對網(wǎng)絡(luò)丟包問題 (linux 看內(nèi)核丟包)
URL地址:http://m.fisionsoft.com.cn/article/dhedhjg.html


咨詢
建站咨詢
