solaris 作業系統提供了 pstack 工具,用來列印執行程式的執行緒堆疊資訊。redhat 公司發行的linux作業系統(rhel,centos等等) 也提供了pstack工具,只要按照 gbd:
yum install gdb
由於通過 pstack 獲得的是快照形式的資訊,因此不能判定是否一直是相同的狀態。為了調查是否是相同的狀態,需要同時 使用事件記錄形式的工具來確認。
另外,因為是從os層面看到的呼叫棧,所以可能會與應用程式端呼叫的函式名有所差異
一般來說,pstack 的負載 較低,很少會導致效能下降。
另外,通過pstack 知道函式名後,對於自己編寫的程式,就能一邊檢查源**,一邊調查在哪個函式上耗費了時間。另一方面,很多時候外部產品的函式名
是非公開的,沒辦法對其進行調查。不過,呼叫棧上顯示的os的函式能在網上查到,可以對其進行調查
[root@localhost ~]# pstack 1372
#0 0x00007f01af75117c in waitpid () from /lib64/libc.so.6
#1 0x0000000000440b24 in waitchld.isra.10 ()
#2 0x0000000000441ddc in wait_for ()
#3 0x0000000000433aae in execute_command_internal ()
#4 0x0000000000433cce in execute_command ()
#5 0x000000000041e305 in reader_loop ()
#6 0x000000000041c96e in main ()
strace 是 使用 使用事件記錄的形式,從os看到的某個程序的系統呼叫資訊,能知道在等待哪個系統呼叫,os的哪個函式比較耗時
,注意在沒有其他辦法的時候才使用strace。如果要對外部產品使用strace,請先和該產品的支援部門確認一下。
因為strace 的負載很高,建議在測試環境下再現故障之後再使用。在生產環境中,請在確認允許處理之後再使用。此外,使用strace
分析效能故障的時候,請注意strace自身也會導致速度變慢
[root@localhost ~]#strace -p 1372
strace: process 1372 attached
wait4(-1
通過 -o 選項,可以 輸出 到指定檔案
下面是 將 cat 命令 內部呼叫 記錄 輸入到bbb中
strace -o bbb cat aaa.txt
使用 -c 命令 可以 報告 執行 乙個命令 每個系統呼叫 在核心 中 消耗時間的統計
[root@izm5efwaqhukrqgsmh2vw4z local]# strace -c cat aaa.txt
sse% time seconds usecs/call calls errors syscall
58.14 0.000025 4 6 close
41.86 0.000018 6 3 read
0.00 0.000000 0 1 write
0.00 0.000000 0 4 open
0.00 0.000000 0 5 fstat
0.00 0.000000 0 8 mmap
0.00 0.000000 0 4 mprotect
0.00 0.000000 0 1 munmap
0.00 0.000000 0 4 brk
0.00 0.000000 0 1 1 access
0.00 0.000000 0 1 execve
0.00 0.000000 0 1 arch_prctl
0.00 0.000000 0 1 fadvise64
100.00 0.000043 40 1 total
linux效能優化
調優必須有效能指標,一開始調優必須確定指標 確定基線 確定目標。如果可能的話分離問題,刪除任何執行於被調查系統的多餘的程式或應用!工具 gnome system monitor 圖形介面,可以說是top的圖形化 執行 gnome system monitor 多處理器統計 mpstat,最大的優點是...
Linux效能優化
這裡一定會想到 高併發 和 響應快 這裡詞正對應的就是 吞吐 和 延時 我們知道隨著應用負載的體系,系統資源的使用就會提高,甚至達到極限。而效能問題的本質,就是系統資源已經達到瓶頸,但請求處理還是不夠快,無法支撐更多的請求。linux效能工具圖譜 這個圖是個重要的參考資料,會告訴我們,在linux不...
Linux效能優化 記憶體效能優化思路
目錄 記憶體效能指標 記憶體效能工具 如何快速分析記憶體的效能指標 系統記憶體使用情況 1.已用記憶體和剩餘記憶體 2.共享記憶體,通過tmpfs實現的,他的大小就是tmpfs使用的記憶體大小,這是乙個特殊的快取 3.可用記憶體是新程序可以使用的最大記憶體,包括剩餘記憶體和可 快取 4.快取包括,從...