用systemtap分析磁碟寫入操作

2021-08-22 18:53:28 字數 1269 閱讀 1782

probekernel.function("do_sync_write")

}輸出結果讓我有些意外:

name=do_sync_writepid=22542uid=0ino=324338name=sda1filename=sqlite_lvkvyhyhutvo2ss-journal

name=do_sync_writepid=22542uid=0ino=324338name=sda1filename=sqlite_lvkvyhyhutvo2ss-journal

name=do_sync_writepid=22542uid=0ino=324338name=sda1filename=sqlite_lvkvyhyhutvo2ss-journal

name=do_sync_writepid=22542uid=0ino=324338name=sda1filename=sqlite_lvkvyhyhutvo2ss-journal

name=do_sync_writepid=22542uid=0ino=324338name=sda1filename=sqlite_lvkvyhyhutvo2ss-journal

name=do_sync_writepid=22542uid=0ino=324316name=sda1filename=sqlite_lvkvyhyhutvo2ss

name=do_sync_writepid=22542uid=0ino=324316name=sda1filename=sqlite_lvkvyhyhutvo2ss

name=do_sync_writepid=22542uid=0ino=324316name=sda1filename=sqlite_lvkvyhyhutvo2ss

name=do_sync_writepid=22542uid=0ino=324316name=sda1filename=sqlite_lvkvyhyhutvo2ss

name=do_sync_writepid=22542uid=0ino=324316name=sda1filename=sqlite_lvkvyhyhutvo2ss

居然是sqlite做了大量的臨時檔案寫入操作,僅僅是起動一次就做了800多次寫入操作。增加一條記錄要寫入24次,其中臨時檔案寫入佔21次。如果使用的臨時檔案系統,那沒事兒,因為臨時檔案系統是用記憶體來模擬的,寫多少次都不怕,預設的臨時檔案系統mount在/tmp下。而我在檢查sqlite程序開啟的檔案時,發現臨時檔案放在/var/tmp下,問題就出在這裡,這不是臨時檔案系統。我修改了sqlite的**,對flash的寫入操作降為原來的1/8。

希望這個改動確實有效。

~~end~~

用systemtap分析磁碟寫入操作

輸出結果讓我有些意外 name do sync write pid 22542 uid 0 ino 324338 name sda1 filename sqlite lvkvyhyhutvo2ss journal name do sync write pid 22542 uid 0 ino 3243...

用systemtap研究核心

用systemtap研究核心 作者 李先靜 前幾天寫了一篇關於kprobes的blog,kprobes是個好東西,不過要編寫c 要編譯核心模組,稍嫌有些麻煩。今天我們介紹乙個基於kprobes實現的工具systemtap,systemtap是乙個核心trace工具,用它來研究核心,跟蹤核心執行非常方...

用systemtap研究核心以及相關漏洞

作者 李先靜 前幾天寫了一篇關於kprobes的blog,kprobes是個好東西,不過要編寫c 要編譯核心模組,稍嫌有些麻煩。今天我們介紹乙個基於kprobes實現的工具systemtap,systemtap是乙個核心trace工具,用它來研究核心,跟蹤核心執行非常方便。我玩了一下,感覺不錯,這裡...