日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux c统计进程网络读写,linux网络分析、性能分析、文本格式化、文件读写操作之利器(mtr、top、jq、sponge)...

發(fā)布時間:2023/12/2 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux c统计进程网络读写,linux网络分析、性能分析、文本格式化、文件读写操作之利器(mtr、top、jq、sponge)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

好的工具能夠讓我們工作更加高效,結合工作中的情況,今天分享下linux下比較好用的幾個工具。

網(wǎng)絡分析工具

mtr

mtr是網(wǎng)絡鏈路檢測判斷問題非常好用的工具,集成了tracert和ping這兩個命令的功能,動態(tài)的輸出檢測結果。mtr 默認發(fā)送icmp數(shù)據(jù)包進行鏈路探測,會對鏈路上的相關節(jié)點做持續(xù)探測并給出相應的統(tǒng)計信息,mtr 能避免節(jié)點波動對測試結果的影響

其中中間線路丟包嚴重但是目標地址不丟包,可能是因為某些主機路由對icmp協(xié)議不做處理或者只分配固定限額的資源處理,所以是正常情況。因為icmp協(xié)議請求消耗cpu資源,為了節(jié)省開銷,cpu只分配固定資源處理icmp請求

root@master1:~# mtr 114.114.114.114

輸出結果說明

第一列(host):節(jié)點ip和域名

第二列(Loss%):節(jié)點丟包率,通常最后的目標丟包才算是真正的丟包

第三列(Snt):發(fā)送數(shù)據(jù)包的數(shù)量

第四列(Last):最后一次的探測延遲值

第五列(Avg):探測延遲的平均值

第六列(Best):探測延遲的最小值,即最優(yōu)值

第七列(Wrst):探測延遲的最大值,即最差值

第八列(StDev):標準偏差

可選參數(shù)說明

-h(--help):提供幫助信息

-v(--version):顯示版本

-c(--count):設置ping的數(shù)量限制值,達到該值后程序退出

-r(--report):以報告模式輸出

-p(--split):將每次追蹤的結果分別列出來

-s(--psize):指定ping數(shù)據(jù)包的大小

-n(--no-dns):不對ip地址做域名解析

-a(--address):設置發(fā)送包的ip地址,主機有多個ip時使用

-i(--interval):設置icmp返回之間的間隔,默認是1s

-4:使用ipv4協(xié)議

-6:使用ipv6協(xié)議

運行時交互式選項

?或h:顯示幫助菜單

d:切換顯示模式

n:啟用或禁用dns域名解析

u:切換使用icpm或udp數(shù)據(jù)包進行探測

eg:

設置ping的數(shù)量為20,包大小為1024字節(jié),以報告模式輸出,檢查百度的連通性

性能分析工具

top

通過top命令查看系統(tǒng)的CPU、內(nèi)存、運行時間、交換分區(qū)、執(zhí)行的線程等信息??梢杂行У陌l(fā)現(xiàn)系統(tǒng)的缺陷出在哪里,是內(nèi)存不夠、CPU處理能力不夠還是IO讀寫問題等。

root@master1:~# top

輸出結果說明

第一行:系統(tǒng)當前時間、系統(tǒng)運行時間、當前登錄用戶數(shù)、系統(tǒng)負載(1分鐘、5分鐘、15分鐘的平均值)

第二行:tasks為任務進程,total進程總數(shù),ruuning正在運行的進程數(shù),sleeping睡眠的進程數(shù),stopped停止運行的進程數(shù),zombie僵尸進程數(shù)

第三行:cpu使用情況,us(user)用戶空間占用cpu時間百分比,sy(system)內(nèi)核空間占用cpu時間百分比,ni(nice)運行低優(yōu)先級進程的cpu時間百分比,id(idle)空閑cpu時間百分比,wa(iowait)等待io占用cpu時間百分比,hi(hard interrupt)硬件硬中斷占用cpu百分比,si(soft interrupt)軟件軟中斷占用cpu百分比,st(steal)當前系統(tǒng)運行在虛擬機中的時候,被其他虛擬機占用的cpu時間百分比

整體的cpu使用率=1-id。當us很高時,證明cpu時間主要消耗在用戶代碼,需要優(yōu)化用戶代碼。sy很高時,說明cpu時間都消耗在內(nèi)核,要么是頻繁的系統(tǒng)調(diào)用,要么是頻繁的cpu切換(進程切換/線程切換)。wa很高時,說明有進程在進程頻繁的IO操作,有可能是磁盤IO,也有可能是網(wǎng)絡IO。si很高時,說明cpu時間消耗在處理軟中斷,網(wǎng)絡收發(fā)包會觸發(fā)系統(tǒng)軟中斷,所以大量的網(wǎng)絡小包會導致軟中斷的頻繁觸發(fā),典型的SYN Floor會導致si很高。

第四行:內(nèi)存使用情況,total物理內(nèi)存總大小,free空閑內(nèi)存總量,used已經(jīng)使用的內(nèi)存量,buff表示用于讀寫磁盤緩存的內(nèi)存,cache表示用于讀寫文件緩存的內(nèi)存。avail表示可用的內(nèi)存大小

第五行:虛擬內(nèi)存信息, total表示能用的swap總量,swap free表示剩余,used表示已經(jīng)使用的。

swap原理是把一塊磁盤空間或者一個本地文件當成內(nèi)存來使用,稱為交換分區(qū)

第六行:具體的每個進程狀態(tài),PID進程id,USER進程所有者的用戶名,PR進程調(diào)度優(yōu)先級,NI進程nice值(優(yōu)先級),越小的值代表越高的優(yōu)先級,VIRT進程使用的虛擬內(nèi)存,RES進程使用的物理內(nèi)存(不包括共享內(nèi)存),SHR 進程使用的共享內(nèi)存大小,S進程狀態(tài)(D:不可中斷的睡眠狀態(tài),R:運行,S:睡眠,T:跟蹤/停止,Z:僵尸進程),%CPU 進程使用的cpu占用百分比,%MEM 進程使用的內(nèi)存占用百分比,TIME+ 進程啟動后到現(xiàn)在所用的全部cpu時間,COMMAND 進程的啟動命令(默認只顯示二進制,-c參數(shù)能夠顯示命令行和啟動參數(shù))

可選參數(shù)說明

-b 批處理模式操作

-d 指定每兩次屏幕信息刷新之間的時間間隔

-p 通過指定監(jiān)控進程ID來僅僅監(jiān)控某個進程的狀態(tài)

-q 使top沒有任何延遲的進行刷新,如果調(diào)用程序有超級用戶權限,那么top將以盡可能高的優(yōu)先級運行

-S 指定累積模式

-s 使top命令在安全模式中運行,這將去除交互命令所帶來的潛在危險。

-i 使top不顯示任何閑置或者僵死進程

-c 顯示整個命令行而不只是顯示命令名

運行時交互式選項

h或者? 顯示快捷鍵幫助

q 退出程序

1 展開多核cpu顯示

m 切換顯示內(nèi)存信息

M 根據(jù)內(nèi)存使用大小排序

P 根據(jù)CPU使用率進行排序(默認排序)

c 切換顯示命令名稱和完整命令行

k 終止一個進程

i 忽略閑置和僵死進程

r 重新安排一個進程的優(yōu)先級別,系統(tǒng)提示用戶輸入需要改變的進程PID以及需要設置的進程優(yōu)先級

S 切換到累計模式

s 更改刷新間隔時間,單位秒,默認是5s

f或者F 從當前顯示中添加或者刪除項目

o或者O 改變顯示項目的順序

l切換顯示平均負載和啟動時間信息

t 切換顯示進程和CPU狀態(tài)信息

T 根據(jù)時間/累計時間進行排序

w 將當前設置寫入~/.toprc文件中

格式化工具

jq

jq可以對json數(shù)據(jù)進行分片、過濾、映射和轉換,可以讓linux命令和shell腳本在處理json數(shù)據(jù)時變得得心應手。

默認linux系統(tǒng)是不帶jq命令的,首先需要安裝

root@master1:~# apt-get install -y jq

有如下json格式的文件

root@master1:~# cat test.txt

[{"address":{"province":"hubei","city":"wuhan"},"site":"www.hubei.com"},{"address":{"province":"hunan","city":"changsha"},"site":"www.hunan.com"},{"address":{"province":"zhejiang","city":"hangzhou"},"site":"www.zhejiang.com"}]

現(xiàn)在格式化輸出test.txt

或者如下格式化

根據(jù)索引查看元素

如查看第一個元素

注意:用jq處理的文件必須首先是符合json格式的,否則用jq格式化會報錯,jq格式化不會改變原文件排版格式

文件操作工具

sponge

sponge是一個修改文件比較好用的工具,支持在文件寫入前讀取所有輸入,所以在讀取文件后再次向同一文件寫入時比較有用

例如有如下文件

root@master1:~# cat ceshi.txt

windowns

linux

c language

python language

go language

hello world

現(xiàn)在我們需要將該文件按照首字母順序排列后重新保存到該文件

root@master1:~# sort ceshi.txt

c language

go language

hello world

linux

python language

windowns

可能你會想到如下重定向

但是你會發(fā)現(xiàn)這樣重定向后源文件為空了,當然這不是我們希望看到的。

現(xiàn)在我們重新將內(nèi)容寫入文件

root@master1:~# cat ceshi.txt

windowns

linux

c language

python language

go language

hello world

這時你可能又會想到通過臨時文件的方式重定向

當然通過臨時文件的方式可以滿足我們的需求

因為sponge可以在文件寫入前讀取所有輸入,所以通過sponge可以很好的解決我們的需求

linux默認是沒有sponge命令的,首先需要安裝

root@master1:~# apt-get install -y moreutils

上面介紹jq工具時,我們格式化輸出了test.txt,但是test.txt文件本身沒有改變,所以現(xiàn)在我們可以將jq和sponge結合使用格式化文件test.txt

root@master1:~# cat test.txt

[{"address":{"province":"hubei","city":"wuhan"},"site":"www.hubei.com"},{"address":{"province":"hunan","city":"changsha"},"site":"www.hunan.com"},{"address":{"province":"zhejiang","city":"hangzhou"},"site":"www.zhejiang.com"}]

總結

以上是生活随笔為你收集整理的linux c统计进程网络读写,linux网络分析、性能分析、文本格式化、文件读写操作之利器(mtr、top、jq、sponge)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。