亚洲福利网站,国产精品久久国产三级国电话系列 ,欧美久久久久久,蜜桃av在线

IT培訓-高端面授IT培訓機構
云和教育:云和數據集團高端IT職業教育品牌
  • 國家級
    全民數字素養與技能培訓基地
  • 河南省
    第一批產教融合型企業建設培育單位
  • 鄭州市
    數字技能人才(碼農)培養評價聯盟

【技術】Linux 系統性能分析工具圖解讀(二)

  • 發布時間:
    2014-12-17
  • 版權所有:
    云和教育
  • 分享:

第一篇講了一些最基礎的命令了,接下來在研究研究高級的命令:

sar

netstat

pidstat

strace

tcpdump

blktrace

iotop

slabtop

sysctl

/proc

sar

sar 是 System Activity Reporter 的意思,這是一個強大到發指的工具,在第一篇中提到的那些工具的功能(cpu、 mem、 disk、 net),基本上 sar 都可以覆蓋到,不信的話可以試一下 sar -A 1 1 看一下它都統計了哪些東西。此外 sar 可以周期性的執行統計,很多系統級別的監控都是通過 sar 來做的。淘寶還專門自己開發了一個tsar在原有的系統級別的監控上增加了對應用的監控。

netstat

這個命令也是和網絡相關的,可以查看 socket 的連接信息,比如建立了哪些 TCP 連接,他們的狀態是怎樣的,一個進程有多少鏈接。通常這個命令后面都會跟著 grep 或者 awk 的命令進行進一步處理。以至于有的 awk 的教程都會以 netstat 的輸出處理作為樣例,比如耗子叔叔的awk 簡明教程。此外這個命令還有一個 -s 的參數可以統計不同的協議的數據包信息。

pidstat

其實要不是看到大神說有這個命令,我還以為這個命令是 ps 的全稱。其實展示的東西也和 ps 類似,主要的區別在于 ps 只是一次提供系統進程狀態的一個快照,pidstat# 可以指定進程提供定時多次的統計信息,相當于你可以更細粒度的 ps 了。這也是做監控的一個很好的工具,可以針對特殊進程特殊關照。

strace

其實感覺 strace 是一個更偏針對應用的性能工具,他可以統計出進程進行了哪些系統調用,處理了哪些信號。也因此 strace 是一個分析程序實現的一個很好的工具,比如說你想知道 pidstat 中的信息都是從哪里獲得的就 strace pidstat |& grep open 就可以知道它是打開了哪些文件獲取到信息的。由于 strace 會將輸出打到標準錯誤中所以管道處理要記得加上 & 。這個命令是很強大,但問題是也及其消耗性能,一般情況下慢一個數量級還是會有的,所以只是分析的時候用一下,正常執行就不要了。

tcpdump

大名鼎鼎的 tcpdump 可以將經過網卡的數據包保存下來一份以供 wireshark 這類軟件進一步進行分析。如果愿意的話開啟網卡混雜模式也可以捕獲同一網絡上其他機器的數據包,也是黑客很喜歡的工具。和 strace 類似, tcpdump 的功能很強大,即使開了 filter 功能也很消耗性能,一般的生產機如果流量大的話開啟 tcpdump還是吃不消的。當然有一些神秘的組織是需要獲取網絡包的完整備份的,他們大概是用專門的硬件完成的吧。

blktrace

其實這個命令用 btrace 展示會更好一些,看名字就知道是 strace 的 io 版,可以實時的展示每次磁盤 IO 請求的內容,耗時,發生位置等等很多東西,不過帶 trace 的命令一般都比較耗性能。

iotop

和上個命令類似,一看就是 top 的 io 版,簡潔明了,包括展示都和 top 很類似,試一下就知道是怎么回事了。

slabtop

其實只要知道 slab 是個什么東西,這個命令就很好理解了。slab 是對象緩沖池,將一些常用的小的對象結構再釋放后緩存起來,而不是直接交給系統回收,這樣可以避免頻繁的小對象找系統申請內存造成性能下降,知道這個再看 這條命令就很輕松了。

sysctl

這里面是一些很有講究的系統參數的設置,很多參數的設置都會對服務器的性能產生很大的影響。這也是個水很深的配置文件,比如 tcpreuse、tcprecycle 這些服務器的重要配置都在這里面。這里面的配置估計也能講上個幾天幾夜。還是先 sysctl -a 看一下感受感受吧。

/proc

其實上述諸多的工具都是從這個文件加下面讀取文件做展示的,不過真要自己解析這里面的文件還是蠻耗功夫的,所以還是好好用一下上面的那些命令吧。不過如果你對那些命令是如何實現的可以配合著 strace 來探索這里面的奧秘。

主站蜘蛛池模板: 望江县| 阜平县| 昌邑市| 新竹市| 喀什市| 蓬安县| 潞城市| 永康市| 钟山县| 石家庄市| 永安市| 和平区| 密山市| 黔东| 青州市| 洛阳市| 县级市| 西峡县| 运城市| 临澧县| 苏尼特左旗| 平阴县| 蓝田县| 永寿县| 瑞丽市| 黔南| 于都县| 通城县| 沂源县| 绿春县| 威海市| 开江县| 紫云| 山东省| 合水县| 邵武市| 延津县| 玉田县| 定兴县| 怀柔区| 彰化市|