zlog 占cpu
壓力測試中, zlog級別設置比較低, log輸出比較多, 已經很明顯的造成cpu占用率上升; 同時寫磁盤居多,io高, 導致load升高。
基本功能性問題排除后, 壓力時,將log級別調高。
另外, 自己實現的memory pool, 發現比較影響性能, 連簡單的new/delete都比不上, 為什么?
memory pool 實現分配好幾種固定大小的內存塊; 需要時從中獲取,用完歸還。 使用pthread_mutex_lock 做進程內的多線程互斥。
后來在壓力測試過程中, 發現不使用memory pool時吞吐量反而上去了一些
直接使用new/delete 也沒有發現內存碎片問題, 性能上也還行; 實在覺得必要, 可以使用tcmalloc.
使用tcmalloc的方法:
最后一個-ltcmalloc
tcmalloc ?檢查內存泄露
env HEAPCHECK=normal ./program ?../config.xml
valgrind --leak-check=full ./program ../config.xml?
測試中發現某些時候內存激增, 但是前后端模塊的cpu都比較低, 原來是壓力程序的請求都在模塊中堆積,導致內存上漲。
為什么前后端模塊cpu都比較低, 請求仍然在隊列中排隊呢?
總結