linux查看網(wǎng)卡吞吐量和網(wǎng)卡流量用自帶命令,iptraf查看。
創(chuàng)新互聯(lián)建站專注于惠陽網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供惠陽營銷型網(wǎng)站建設(shè),惠陽網(wǎng)站制作、惠陽網(wǎng)頁設(shè)計、惠陽網(wǎng)站官網(wǎng)定制、微信小程序定制開發(fā)服務(wù),打造惠陽網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供惠陽網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
1 命令行直接輸入:iptraf(如果沒有,使用yum install iptraf安裝)
2.打開進(jìn)入選擇ip鏡像。
3. 選擇監(jiān)聽測試的接口,所有接口。
4.開啟監(jiān)聽狀態(tài)日志,系統(tǒng)默認(rèn)日志路徑。/var/log/iptraf/ip_traffic.log
4. 運行之后,開啟進(jìn)行監(jiān)聽網(wǎng)卡流量
5.iptraf參考用法:
man iptraf 查看
此外還有很多工具命令可以查看:
watch命令:
watch -n 1 "/sbin/ifconfig eth0 | grep bytes"。
信號量是包含一個非負(fù)整數(shù)型的變量,并且?guī)в袃蓚€原子操作wait和signal。Wait還可以被稱為down、P或lock,signal還可以被稱為up、V、unlock或post。在UNIX的API中(POSIX標(biāo)準(zhǔn))用的是wait和post。
對于wait操作,如果信號量的非負(fù)整形變量S大于0,wait就將其減1,如果S等于0,wait就將調(diào)用線程阻塞;對于post操作,如果有線程在信號量上阻塞(此時S等于0),post就會解除對某個等待線程的阻塞,使其從wait中返回,如果沒有線程阻塞在信號量上,post就將S加1.
由此可見,S可以被理解為一種資源的數(shù)量,信號量即是通過控制這種資源的分配來實現(xiàn)互斥和同步的。如果把S設(shè)為1,那么信號量即可使多線程并發(fā)運行。另外,信號量不僅允許使用者申請和釋放資源,而且還允許使用者創(chuàng)造資源,這就賦予了信號量實現(xiàn)同步的功能。可見信號量的功能要比互斥量豐富許多。
POSIX信號量是一個sem_t類型的變量,但POSIX有兩種信號量的實現(xiàn)機制: 無名信號量 和 命名信號量 。無名信號量只可以在共享內(nèi)存的情況下,比如實現(xiàn)進(jìn)程中各個線程之間的互斥和同步,因此無名信號量也被稱作基于內(nèi)存的信號量;命名信號量通常用于不共享內(nèi)存的情況下,比如進(jìn)程間通信。
同時,在創(chuàng)建信號量時,根據(jù)信號量取值的不同,POSIX信號量還可以分為:
下面是POSIX信號量函數(shù)接口:
信號量的函數(shù)都以sem_開頭,線程中使用的基本信號函數(shù)有4個,他們都聲明在頭文件semaphore.h中,該頭文件定義了用于信號量操作的sem_t類型:
【sem_init函數(shù)】:
該函數(shù)用于創(chuàng)建信號量,原型如下:
該函數(shù)初始化由sem指向的信號對象,設(shè)置它的共享選項,并給它一個初始的整數(shù)值。pshared控制信號量的類型,如果其值為0,就表示信號量是當(dāng)前進(jìn)程的局部信號量,否則信號量就可以在多個進(jìn)程間共享,value為sem的初始值。
該函數(shù)調(diào)用成功返回0,失敗返回-1。
【sem_destroy函數(shù)】:
該函數(shù)用于對用完的信號量進(jìn)行清理,其原型如下:
成功返回0,失敗返回-1。
【sem_wait函數(shù)】:
該函數(shù)用于以原子操作的方式將信號量的值減1。原子操作就是,如果兩個線程企圖同時給一個信號量加1或減1,它們之間不會互相干擾。其原型如下:
sem指向的對象是sem_init調(diào)用初始化的信號量。調(diào)用成功返回0,失敗返回-1。
sem_trywait()則是sem_wait()的非阻塞版本,當(dāng)條件不滿足時(信號量為0時),該函數(shù)直接返回EAGAIN錯誤而不會阻塞等待。
sem_timedwait()功能與sem_wait()類似,只是在指定的abs_timeout時間內(nèi)等待,超過時間則直接返回ETIMEDOUT錯誤。
【sem_post函數(shù)】:
該函數(shù)用于以原子操作的方式將信號量的值加1,其原型如下:
與sem_wait一樣,sem指向的對象是由sem_init調(diào)用初始化的信號量。調(diào)用成功時返回0,失敗返回-1。
【sem_getvalue函數(shù)】:
該函數(shù)返回當(dāng)前信號量的值,通過restrict輸出參數(shù)返回。如果當(dāng)前信號量已經(jīng)上鎖(即同步對象不可用),那么返回值為0,或為負(fù)數(shù),其絕對值就是等待該信號量解鎖的線程數(shù)。
【實例1】:
【實例2】:
之所以稱為命名信號量,是因為它有一個名字、一個用戶ID、一個組ID和權(quán)限。這些是提供給不共享內(nèi)存的那些進(jìn)程使用命名信號量的接口。命名信號量的名字是一個遵守路徑名構(gòu)造規(guī)則的字符串。
【sem_open函數(shù)】:
該函數(shù)用于創(chuàng)建或打開一個命名信號量,其原型如下:
參數(shù)name是一個標(biāo)識信號量的字符串。參數(shù)oflag用來確定是創(chuàng)建信號量還是連接已有的信號量。
oflag的參數(shù)可以為0,O_CREAT或O_EXCL:如果為0,表示打開一個已存在的信號量;如果為O_CREAT,表示如果信號量不存在就創(chuàng)建一個信號量,如果存在則打開被返回,此時mode和value都需要指定;如果為O_CREAT|O_EXCL,表示如果信號量存在則返回錯誤。
mode參數(shù)用于創(chuàng)建信號量時指定信號量的權(quán)限位,和open函數(shù)一樣,包括:S_IRUSR、S_IWUSR、S_IRGRP、S_IWGRP、S_IROTH、S_IWOTH。
value表示創(chuàng)建信號量時,信號量的初始值。
【sem_close函數(shù)】:
該函數(shù)用于關(guān)閉命名信號量:
單個程序可以用sem_close函數(shù)關(guān)閉命名信號量,但是這樣做并不能將信號量從系統(tǒng)中刪除,因為命名信號量在單個程序執(zhí)行之外是具有持久性的。當(dāng)進(jìn)程調(diào)用_exit、exit、exec或從main返回時,進(jìn)程打開的命名信號量同樣會被關(guān)閉。
【sem_unlink函數(shù)】:
sem_unlink函數(shù)用于在所有進(jìn)程關(guān)閉了命名信號量之后,將信號量從系統(tǒng)中刪除:
【信號量操作函數(shù)】:
與無名信號量一樣,操作信號量的函數(shù)如下:
命名信號量是隨內(nèi)核持續(xù)的。當(dāng)命名信號量創(chuàng)建后,即使當(dāng)前沒有進(jìn)程打開某個信號量,它的值依然保持,直到內(nèi)核重新自舉或調(diào)用sem_unlink()刪除該信號量。
無名信號量的持續(xù)性要根據(jù)信號量在內(nèi)存中的位置確定:
很多時候信號量、互斥量和條件變量都可以在某種應(yīng)用中使用,那這三者的差異有哪些呢?下面列出了這三者之間的差異:
這篇文章將講述別一種進(jìn)程間通信的機制——信號量。注意請不要把它與之前所說的信號混淆起來,信號與信號量是不同的兩種事物。有關(guān)信號的更多內(nèi)容,可以閱讀我的另一篇文章:Linux進(jìn)程間通信——使用信號。下面就進(jìn)入信號量的講解。
一、什么是信號量
為了防止出現(xiàn)因多個程序同時訪問一個共享資源而引發(fā)的一系列問題,我們需要一種方法,它可以通過生成并使用令牌來授權(quán),在任一時刻只能有一個執(zhí)行線程訪問代碼的臨界區(qū)域。臨界區(qū)域是指執(zhí)行數(shù)據(jù)更新的代碼需要獨占式地執(zhí)行。而信號量就可以提供這樣的一種訪問機制,讓一個臨界區(qū)同一時間只有一個線程在訪問它,也就是說信號量是用來調(diào)協(xié)進(jìn)程對共享資源的訪問的。
信號量是一個特殊的變量,程序?qū)ζ湓L問都是原子操作,且只允許對它進(jìn)行等待(即P(信號變量))和發(fā)送(即V(信號變量))信息操作。最簡單的信號量是只能取0和1的變量,這也是信號量最常見的一種形式,叫做二進(jìn)制信號量。而可以取多個正整數(shù)的信號量被稱為通用信號量。這里主要討論二進(jìn)制信號量。
二、信號量的工作原理
由于信號量只能進(jìn)行兩種操作等待和發(fā)送信號,即P(sv)和V(sv),他們的行為是這樣的:
P(sv):如果sv的值大于零,就給它減1;如果它的值為零,就掛起該進(jìn)程的執(zhí)行
V(sv):如果有其他進(jìn)程因等待sv而被掛起,就讓它恢復(fù)運行,如果沒有進(jìn)程因等待sv而掛起,就給它加1.
舉個例子,就是兩個進(jìn)程共享信號量sv,一旦其中一個進(jìn)程執(zhí)行了P(sv)操作,它將得到信號量,并可以進(jìn)入臨界區(qū),使sv減1。而第二個進(jìn)程將被阻止進(jìn)入臨界區(qū),因為當(dāng)它試圖執(zhí)行P(sv)時,sv為0,它會被掛起以等待第一個進(jìn)程離開臨界區(qū)域并執(zhí)行V(sv)釋放信號量,這時第二個進(jìn)程就可以恢復(fù)執(zhí)行。
三、Linux的信號量機制
Linux提供了一組精心設(shè)計的信號量接口來對信號進(jìn)行操作,它們不只是針對二進(jìn)制信號量,下面將會對這些函數(shù)進(jìn)行介紹,但請注意,這些函數(shù)都是用來對成組的信號量值進(jìn)行操作的。它們聲明在頭文件sys/sem.h中。
linux的常用信號量
BUS與SEGV
二者都是錯誤信號,BUS表示總線錯誤,SEGV表示段錯誤,程序崩潰的時候99%都是這兩個錯誤導(dǎo)
致的。進(jìn)程可以捕獲和封鎖這兩類錯誤。內(nèi)核對二者的默認(rèn)處理是memory dump
WINCH
窗口改變信號(WINdown CHanged)。例如虛擬終端的行數(shù)發(fā)生變化時將發(fā)送WINCH信號,絕大多數(shù)
文本編輯器都能捕獲WINCH信號自動進(jìn)行重新配置。內(nèi)核的默認(rèn)處理是忽略該信號,并且不進(jìn)行內(nèi)存
轉(zhuǎn)儲。
進(jìn)程可以捕獲或者封鎖該信號
KILL
殺死/刪除進(jìn)程,編號為9
STOP?
掛起/暫停正在執(zhí)行的進(jìn)程,直到收到CONT為止
KILL STOP都不能夠被捕獲、封鎖或者忽略,默認(rèn)處理都不會產(chǎn)生內(nèi)存轉(zhuǎn)儲。
CONT?
取消掛起,繼續(xù)執(zhí)行進(jìn)程
TSTP?
是STOP信號的“軟”版本,即在用戶輸入Ctrl+Z時由終端驅(qū)動程序發(fā)送的信號。捕獲到該信號的進(jìn)程通常
清除它們的狀態(tài),如何給自己發(fā)送一個STOP信號。TSTP的默認(rèn)處理不會導(dǎo)致內(nèi)存轉(zhuǎn)儲。
INT?
中斷信號,編號為2
當(dāng)用戶輸入Ctrl+C時由終端驅(qū)動程序發(fā)送INT信號
INT信號是終止當(dāng)前操作的請求,簡單程序捕獲到INT信號時應(yīng)該退出,擁有命令行或者輸入模式的那些
程序應(yīng)該停止他們正在做的事情,清除狀態(tài),并等待用戶再次輸入。
TERM?
軟件終止信號,編號為15
TERM是請求徹底終止某項操作的信號,它期望進(jìn)程清楚自己的狀態(tài)并退出
QUIT?
退出信號,編號為3
與TERM類似,不同之處在于QUIT信號的默認(rèn)處理是內(nèi)存轉(zhuǎn)儲,而TERM信號的默認(rèn)處理沒有內(nèi)存轉(zhuǎn)儲。
HUP?
掛起信號,編號為1,有兩種解釋:
守護進(jìn)程理解HUP為重新設(shè)置的請求,如果守護進(jìn)程能夠不用重新啟動就能夠重新讀取它自己的配置文
件并調(diào)整自己以適應(yīng)變化的話,那么HUP信號通??梢杂脕碛|發(fā)這種行為
HUP
信號有時有終端驅(qū)動程序生成,試圖用來清除(也就是終止)跟某個特定終端相連接的那些進(jìn)程。例如
當(dāng)一個終端會話結(jié)束時,或者當(dāng)一個Modem的連接不經(jīng)意的斷開時,就可能出現(xiàn)這種情況。
如果需要某些進(jìn)程在會話結(jié)束之后繼續(xù)運行,那么在C Shell中設(shè)法讓這些進(jìn)程變成后臺程序,
ksh或者bash中可以用nohup來模擬這種行為。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
進(jìn)程的四種狀態(tài)
runnable(可運行狀態(tài))
只要有CPU時間,進(jìn)程就可以執(zhí)行。一旦進(jìn)程執(zhí)行了不能立即完成的系統(tǒng)調(diào)用,Linux會把進(jìn)程轉(zhuǎn)入
睡眠狀態(tài)
sleeping(睡眠狀態(tài))
進(jìn)程在等待某些事件發(fā)生(如終端輸入、網(wǎng)絡(luò)連接)
zombie(僵化狀態(tài))
進(jìn)程已經(jīng)執(zhí)行完畢并試圖消亡,但是狀態(tài)沒有收集完
stopped(停止?fàn)顟B(tài))
進(jìn)程被掛起,不允許執(zhí)行。進(jìn)程收到STOP或者TSTP信號即進(jìn)入停止?fàn)顟B(tài),可以用CONT信號來重新啟動
當(dāng)前標(biāo)題:查詢linux信號量命令 linux獲取wifi信號強度
文章網(wǎng)址:http://jinyejixie.com/article34/dosecpe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站策劃、App開發(fā)、電子商務(wù)、、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)