我試圖使用trace-cmd
來收集有關我看到的內核崩潰的更多信息。不幸的是,內核因「內核恐慌 - 不同步」消息而崩潰(即不刷新套接字和文件緩衝區,因此崩潰時在緩衝區中的任何內容都不可避免地丟失)。使用trace-cmd/ftrace在發生panic()之前獲取function_graph
有沒有辦法來:
- 力
trace-cmd
進程刷新其緩衝區文件系統或插座?或 - 使trace-cmd/ftrace避免緩衝(即在場景後面調用printk()並使用netconsole)?
因爲我運行的是,在虛擬化環境中trace-cmd
命令,然後我不在乎硬盤驅動器可能會偶爾出現了問題,因爲我可以簡單地恢復到持續良好的快照或重新部署的VM。
這並沒有解決問題,因爲我相信ftrace和trace-cmd之間還有另一個緩衝區。 unbuffer只能解開STDOUT,對吧? –
當然可以。這種方法只是嘗試減少緩衝。 另一種方法是儘量避免恐慌,並讓內核工作時間更長,但結果不可預知。 您可以禁用多種情況下的恐慌。查看「/ proc/sys/kernel/*文檔」(https://www.kernel.org/doc/Documentation/sysctl/kernel.txt)中的「panic_on_ *」設置。 – MrCryo