最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

自編教材分享:第三章—程序性能的分析和測量(二)

2023-09-06 12:06 作者:先進(jìn)編譯實(shí)驗(yàn)室  | 我要投稿


本期分享程序性能測量的工具:計(jì)算器類工具和跟蹤類工具。

計(jì)算器類工具:

虛擬內(nèi)存統(tǒng)計(jì)工具vmstat

Vmstat命令顯示Linux系統(tǒng)虛擬內(nèi)存狀態(tài),還可以統(tǒng)計(jì)關(guān)于進(jìn)程 、內(nèi)存、處理器使用率、I/O、對swap空間的I/O等系統(tǒng)整體運(yùn)行狀態(tài)。

使用方法

Vmstat命令常用格式及使用方法為:

Vmstat命令每隔interval秒采樣一次,一共采樣times次,如果省略了times,則vmstat命令會(huì)一直采集數(shù)據(jù),直到用戶手動(dòng)停止,或使用ctrl+c進(jìn)行停止。具體選項(xiàng)可以使用man vmstat命令來查看。

簡單示例:

這個(gè)命令表示每隔2秒執(zhí)行一次vmstat,一共執(zhí)行10次。參數(shù)含義為,r:等待運(yùn)行的進(jìn)程數(shù)目;b:處在非中斷睡眠狀態(tài)的進(jìn)程數(shù);swpd:虛擬內(nèi)存的使用情況;free:空閑的物理內(nèi)存的大小;si:從磁盤交換到swap虛擬內(nèi)存的交換頁數(shù)量;so:從swap虛擬內(nèi)存交換到磁盤的交換頁數(shù)量;in:每秒的中斷數(shù);us:用戶CPU使用時(shí)間。

輸出字段一共分為6大部分:procs、memory、swap、io、system和cpu。如果r(等待運(yùn)行的進(jìn)程數(shù)目)經(jīng)常大于4,id(空閑的CPU的時(shí)間)經(jīng)常少于40,表示處理器的負(fù)荷很重。并且r的數(shù)目越多,表示處理器越繁忙。如果bi、bo長期不等于0,表示內(nèi)存不足。



輸入/輸出統(tǒng)計(jì)工具iostat

Iostat命令是對系統(tǒng)的磁盤操作活動(dòng)進(jìn)行監(jiān)視的一個(gè)工具。它的特點(diǎn)是匯報(bào)磁盤活動(dòng)統(tǒng)計(jì)情況,同時(shí)也會(huì)匯報(bào)處理器使用情況。

使用方法

Iostat命令常用格式及使用方法為:

Options 表示操作項(xiàng)參數(shù),interval指定統(tǒng)計(jì)時(shí)間間隔,count表示總共輸出次數(shù),具體的參數(shù)可以使用iostat -help來查看,參數(shù)的意義可以使用man iostat來查看。

簡單示例:

-d 2 3表示每隔2秒,顯示一次設(shè)備統(tǒng)計(jì)信息,總共輸出3次。參數(shù)含義為,Device:設(shè)備名稱;tps:每秒I/O數(shù),即IOPS,磁盤連續(xù)讀和連續(xù)寫之和;kB_read/s:每秒從磁盤讀取數(shù)據(jù)大小,單位為KB/s;kB_wrtn/s:每秒寫入磁盤的數(shù)據(jù)的大小,單位為KB/s;kB_read:從磁盤讀出的數(shù)據(jù)總數(shù),單位為KB;kB_wrtn:寫入磁盤的的數(shù)據(jù)總數(shù),單位為KB。

實(shí)時(shí)狀態(tài)工具top

Top命令顯示系統(tǒng)當(dāng)前的進(jìn)程以及其它的一些信息,是一個(gè)動(dòng)態(tài)顯示過程,即可以通過用戶按鍵來不斷刷新當(dāng)前狀態(tài)。Top命令提供了對系統(tǒng)處理器的實(shí)時(shí)狀態(tài)監(jiān)視,它將顯示系統(tǒng)中使用處理器最密集的任務(wù)列表。該命令可以按內(nèi)存使用和執(zhí)行時(shí)間對任務(wù)進(jìn)行排序。

使用方法

Top命令常用格式及使用方法為:

Top命令顯示了系統(tǒng)平均負(fù)載、任務(wù)信息、處理器狀態(tài)、內(nèi)存信息、進(jìn)程或任務(wù)的狀態(tài)。Top命令輸出中的第一行是系統(tǒng)的平均負(fù)載、系統(tǒng)當(dāng)前時(shí)間、系統(tǒng)已運(yùn)行時(shí)間、當(dāng)前連接系統(tǒng)的終端數(shù)、系統(tǒng)負(fù)載;第二行是總進(jìn)程數(shù)、正在運(yùn)行的進(jìn)程數(shù)、正在睡眠的進(jìn)程數(shù)、停止的進(jìn)程數(shù)、僵死狀態(tài)的進(jìn)程數(shù);第三行是用戶進(jìn)程運(yùn)行、內(nèi)核、用戶調(diào)整優(yōu)先級、空閑率;第四行是物理內(nèi)存總量、空閑內(nèi)存總量、使用的物理內(nèi)存總量、用作內(nèi)核緩沖/緩存的內(nèi)存量;第五行可用于進(jìn)程下一次分配的物理內(nèi)存數(shù)量、PR內(nèi)核優(yōu)先級、NI用戶視角下的進(jìn)程執(zhí)行優(yōu)先級、虛擬內(nèi)存大小,進(jìn)程使用的未被換出的物理內(nèi)存大小、進(jìn)程使用的共享內(nèi)存大小,進(jìn)程當(dāng)前的狀態(tài)等。

當(dāng)前進(jìn)程信息統(tǒng)計(jì)工具ps

Ps命令是最簡易操作又非常強(qiáng)大的進(jìn)程查看命令,使用該命令可以確定有哪些進(jìn)程正在運(yùn)行以及運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒有僵死、哪些進(jìn)程占用了過多的資源等。

使用方法

Ps命令常用格式及使用方法為:

Ps命令最常用的選項(xiàng)就是e、f、a、u。相應(yīng)的選項(xiàng)組合為ps -aux,ps -ef等,可以通過這些組合準(zhǔn)確定位系統(tǒng)進(jìn)程狀態(tài)。

簡單示例:

跟蹤類工具

程序調(diào)試工具gdb

gdb是GNU開源組織發(fā)布的一款功能強(qiáng)大的UNIX/Linux下的程序調(diào)試工具,主要功能就是監(jiān)控程序的執(zhí)行。gdb的主要功能就是監(jiān)控程序的執(zhí)行。當(dāng)源程序文件編譯為可執(zhí)行文件并執(zhí)行時(shí),并且該文件中必須包含必要的調(diào)試信息,gdb才會(huì)派上用場。所以在編譯時(shí)需要使用-g選項(xiàng)編譯源文件,才可生成滿足gdb要求的可執(zhí)行文件。

一般來說,gdb主要完成以下四個(gè)方面的功能:

  1. 啟動(dòng)程序,可以按照自定義的要求隨心所欲的運(yùn)行程序。

  2. 可讓被調(diào)試的程序在所設(shè)置的指定斷點(diǎn)處停住。

  3. 當(dāng)程序被停住時(shí),可以檢查此時(shí)程序中所發(fā)生的事件。

  4. 動(dòng)態(tài)的改變程序的執(zhí)行環(huán)境。

使用方法

簡單示例:

b3表示調(diào)試的代碼第三行設(shè)置為斷點(diǎn),r或run表示執(zhí)行程序,whatis iNum表示查看iNum的數(shù)據(jù)類型,c表示繼續(xù)執(zhí)行程序,-n一步步執(zhí)行程序,其中p iNum表示輸出變量iNum的值。

堆棧統(tǒng)計(jì)信息工具pstack

pstack工具可對指定進(jìn)程號的進(jìn)程輸出函數(shù)調(diào)用棧,對于排查進(jìn)程問題時(shí)非常有用。比如發(fā)現(xiàn)一個(gè)服務(wù)一直處于工作狀態(tài),如假死狀態(tài),使用這個(gè)命令就能輕松定位問題所在。

使用方法

Pstack命令常用格式及使用方法為:

Pstack命令可以和ps命令一起使用,首先使用ps命令來查看要檢查程序的進(jìn)程號pid。再使用pstack工具加上進(jìn)程號打印出它的堆棧信息,查看線程的詳細(xì)函數(shù)棧信息。它的函數(shù)是從下到上的調(diào)用關(guān)系。


跟蹤系統(tǒng)調(diào)用工具strace

Strace是一種相當(dāng)有效的跟蹤工具,它的主要特點(diǎn)是可以用來監(jiān)視系統(tǒng)調(diào)用。

Strace工具有兩種運(yùn)行模式:

  1. 通過它啟動(dòng)要跟蹤的進(jìn)程。用法很簡單,在原本的命令前加上strace即可。例如,要跟蹤“l(fā)s -al”這個(gè)命令的執(zhí)行,只需要輸入指令strace ls -al即可。

  2. 另外一種運(yùn)行模式是跟蹤已經(jīng)在運(yùn)行的進(jìn)程,在不中斷進(jìn)程執(zhí)行的情況下,了解程序的運(yùn)行過程。此時(shí),只需要給strace傳遞一個(gè)-p pid選項(xiàng)即可。

需要跟蹤程序add.out的運(yùn)行過程,則輸入命令

了解正在運(yùn)行的進(jìn)程號為2403的進(jìn)程情況,只需要輸入命令


自編教材分享:第三章—程序性能的分析和測量(二)的評論 (共 條)

分享到微博請遵守國家法律
靖远县| 商南县| 游戏| 富民县| 沙坪坝区| 麻城市| 贡觉县| 股票| 绵阳市| 临安市| 海原县| 平陆县| 靖宇县| 屏东市| 西吉县| 抚远县| 苗栗市| 林甸县| 泽州县| 二连浩特市| 太谷县| 万州区| 逊克县| 博罗县| 屏东县| 白城市| 庄河市| 芮城县| 陆川县| 郸城县| 通榆县| 广德县| 昭平县| 江川县| 南澳县| 博湖县| 双流县| 绥阳县| 临城县| 喀喇| 横峰县|