性能調優利器之strace
最近需要對一個自己開發的socket server的性能進行分析,剛開始還想了好長時間怎么來分析。后來才意識到其實使用strace就足夠了。
觀察到的現象是server單進程CPU使用率97,但磁盤i/o只有400MB/s,但這塊磁盤可以達到>1GB/s的速度,于是在server開始跑之后直接用
strace -r -p pid -o outfile cat outfile |awk -F'(' '{print $1}'|awk '{print $1,$2}' >outfile.count
之后拉到excel表里用透視圖一看,就可以看到再做和client交互就使用了40%的時間,所以i/o 上不去就很正常了。
Update:
貌似 strace -c -p pid -o outfile就可以直接看統計信息了,不需要再自己折騰一遍了。
Update 2:
strace -r -T -p pid -o outfile可以看到每個時間執行的相對時間,和時間本省的執行時間,這個在無法看到源程序的情況下去分析一個程序的運行時間還是非常有用的。

浙公網安備 33010602011771號