linux記憶體檢查及本身程式解決方案!!!

2021-07-25 18:58:32 字數 796 閱讀 4990

16 個需要知道的 linux 伺服器監控命令

ps -e -o 『pid,comm,args,pcpu,rsz,vsz,stime,user,uid』 其中rsz是是實際記憶體

free

cat /proc/meminfo

pgrep python

strace -p [pid]

0x1d03c90, futex_wait_private, 0, null

出現原因 : 因為有的時候佇列會出現空值,這樣就會造成執行緒阻塞

,所以程序一直掛載

參考國外大神提出的解決方案結合朋友給的意見

乙個多執行緒程式掛起問題解決

當使用佇列的時候,每執行完就傳送 task_done(),這樣就不會出現阻塞的情況

futex概念

futex是一種使用者態和核心態混合的同步機制。首先,同步的程序間通過mmap共享一段記憶體,futex變數就位於這段共享 的記憶體中且操作是原子的,當程序嘗試進入互斥區或者退出互斥區的時候,先去檢視共享記憶體中的futex變數,如果沒有競爭發生,則只修改futex,而不 用再執行系統呼叫了。當通過訪問futex變數告訴程序有競爭發生,則還是得執行系統呼叫去完成相應的處理(wait 或者 wake up)。簡單的說,futex就是通過在使用者態的檢查,(motivation)如果了解到沒有競爭就不用陷入核心了,大大提高了low-contention時候的效率。

futex_wait: 原子性的檢查uaddr中計數器的值是否為val,如果是則讓程序休眠,直到futex_wake或者超時(time-out)。也就是把程序掛到uaddr相對應的等待佇列上去。

C 程式記憶體洩漏檢查

一 在windows平台上面 以前我都是用purify,因為沒有正版的,很是麻煩,後來我開始用windows自帶的umdh,也很好用 摘要一下步驟如下 注 得先把gflags和umdh的路徑加入到path中,預設為 c program files x86 windows kits 8.1 debug...

Linux 下幾款程式記憶體洩漏檢查工具

工具描述 valgrind 乙個強大開源的程式檢測工具 mtrace gnu擴充套件,用來跟蹤malloc,mtrace為記憶體分配函式 malloc,rellaoc,memalign,free 安裝hook函式 dmalloc 用於檢查c c 記憶體洩漏的工具,即是檢查是否存在程式執行結束還沒有釋...

Linux 下幾款程式記憶體洩漏檢查工具

工具描述 valgrind 乙個強大開源的程式檢測工具 mtrace gnu擴充套件,用來跟蹤malloc,mtrace為記憶體分配函式 malloc,rellaoc,memalign,free 安裝hook函式 dmalloc 用於檢查c c 記憶體洩漏的工具,即是檢查是否存在程式執行結束還沒有釋...