おはようございます、*nix愛好家の皆さん!
私はしばらくDebian 7を使用してきましたが、最近のアップグレード後にルートパーティションのスペースが不足していることがわかりました。ディスクに「0」バイトが残っていることを意味します!だから、たくさん検索中に/ var / logフォルダを0にすることができました。一度はls -s -S
、このフォルダ内のファイルをサイズでソートし、GBサイズ(13〜15GBなど)の3つのファイルを見つけました。
- システムログ
- 情報
- カーネルログ
はい、logrotate
うまくいきます。ログを回転させています。たとえば、/var/logにkern.log.1などがあります。問題は、ログがあまりにも早く満たされているため、ログロテートが何もできないということです。
明らかに、オペレーティングシステムのいくつかのロギングプロセスは、継続的なバグや他の理由(??)のために大量のデータを記録しています。わかりません。私が知っているのは、スループットが多すぎて私のラップトップが過熱しているということだけです。いつもこの絶え間ない書き込みプロセスのため。その結果、CPU のパフォーマンスとディスク容量が失われます。
私の質問は:この問題を引き起こすプロセス/デーモンをどのように確認できますか?問題の根本原因を見つけて解決するにはどうすればよいですか?これらの巨大なログファイルを読むことはオプションではありません。してください。すでに使用されているノートブックで、LeafpadやNotepadなどのテキストエディタを使用して15 GBのログファイルを抽出しようとすると、開くのに時間がかかります。。それは非現実的です。
この問題を引き起こすプロセス/デーモンがある可能性があるので、この質問は広範であることを知っていますが、以前にこの問題を経験した人がいるのか、そして私が見ることができる一般的な容疑者があるのか疑問に思います。
修正する:
Ericの提案に従って、/var/logのファイルを修正時間でソートし、「syslog」が最後のファイルです。だからtail
編集しました。結果:
Apr 10 00:53:37 MyMachine kernel: [11608.690733] [<ffffffffa08e4005>] ? ath9k_reg_rmw+0x35/0x70 [ath9k_htc]
Apr 10 00:53:37 MyMachine kernel: [11608.690742] [<ffffffff81084f57>] ? process_one_work+0x147/0x3b0
Apr 10 00:53:37 MyMachine kernel: [11608.690750] [<ffffffff81085764>] ? worker_thread+0x114/0x480
Apr 10 00:53:37 MyMachine kernel: [11608.690756] [<ffffffff81556065>] ? __schedule+0x2e5/0x790
Apr 10 00:53:37 MyMachine kernel: [11608.690765] [<ffffffff81085650>] ? create_worker+0x1c0/0x1c0
Apr 10 00:53:37 MyMachine kernel: [11608.690772] [<ffffffff8108ae91>] ? kthread+0xc1/0xe0
Apr 10 00:53:37 MyMachine kernel: [11608.690780] [<ffffffff8108add0>] ? kthread_create_on_node+0x1c0/0x1c0
Apr 10 00:53:37 MyMachine kernel: [11608.690788] [<ffffffff8155a23c>] ? ret_from_fork+0x7c/0xb0
Apr 10 00:53:37 MyMachine kernel: [11608.690795] [<ffffffff8108add0>] ? kthread_create_on_node+0x1c0/0x1c0
Apr 10 00:53:37 MyMachine kernel: [11608.690800] ---[ end trace 12dc8d8439345c1d ]
残念ながら、それは私に多くのヒントを与えることができませんでした。
答え1
syslog
実際に投稿したクリップには、これに対する強力なヒントがあります。行末
Apr 10 00:53:37 MyMachine kernel: [11608.690733] [<ffffffffa08e4005>] ? ath9k_reg_rmw+0x35/0x70 [ath9k_htc]
表示されるスタックトレースは、デバイスドライバの予期しないエラーが原因で発生しますath9k_htc
。カーネルがパニックにならないことを願っていますが、繰り返しのエラーが原因でファイルシステムがいっぱいです。
次に、ath9k_htc
このコマンドを使用してWi-Fiドライバをブラックリストに追加して再起動します。
echo "blacklist ath9k_htc" | sudo tee -a /etc/modprobe.d/blacklist.conf
ath9k_htc
これにより、エラーにもかかわらずドライバがまだ使用され、正しく動作しているとWi-Fiが機能しなくなる可能性があります。
ath9k_htc
次のコマンドを実行して、ドライバが期待したWi-Fiデバイスがコンピュータにあることを確認できますlsusb
。https://wiki.debian.org/ath9k_htc
答え2
ログファイルの内容を表示するためにエディタでログファイルを開く必要はありません。最後の数行を見てください。
tail -n 999 /var/log/syslog | less
プロセスのログファイルには常にプロセスIDが含まれています。
Apr 10 00:00:01 harfang /USR/SBIN/CRON[345]: (root) CMD ( /usr/local/bin/midnight-stuff )
Apr 10 00:00:01 darkstar wibbled[1234]: I'm bored
Apr 10 00:00:01 darkstar wibbled[1234]: I'm still bored
Apr 10 00:00:01 darkstar wibbled[1234]: I'm bored
Apr 10 00:00:02 darkstar wibbled[1234]: I'm still bored
Apr 10 00:00:02 darkstar wibbled[1234]: I'm bored
これは、プロセス1234(wibbled
デーモンのインスタンス)が多数のログメッセージを生成していることを示しています。これを終了して設定を確認することもできます。
大きくなると、kern.log
ログがプロセスから出るのではなく、カーネルから出てくるのです。カーネルログの氾濫は稀で、正確に見つけることが困難です。これは、プロセスが緊密なループで再生成され、即座にクラッシュすることによって発生する可能性があります(システムメモリが不足している可能性があります)。これは、オフロード車のドライバーによっても発生する可能性があります。理由を確認するには、メッセージを確認する必要があります。
あなたの場合、ドライバの追跡が表示されます。ドライバで致命的でないエラーが発生し続けます。削除してみてください。
rmmod ath9k
(なぜath9k
?これは機能を提供するドライバであるため、ath9k_reg_rmw
実際にはモジュール名は質問に含まれるビット数行の後ろに記載されているためです)。ドライバがモジュールにないか削除できない場合は、他のものを探してください。これを無効にするエラーやエラーを停止する方法、それを実行する方法は、ドライバが何であるか、何が問題なのかによって異なります。
答え3
指示に従って問題を解決しました。ここ。
方法1
pci=noaer
カーネルコマンドラインに以下を追加します。
- で始まる行を編集して
/etc/default/grub
追加します。次のようになります。pci=noaer
GRUB_CMDLINE_LINUX_DEFAULT
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer"
- 走る
sudo update-grub
- 再起動
ログファイルのサイズを縮小し、膨大な増加を停止しました。
方法2
役に立たない場合は、同じように編集できます。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer pci=nomsi"
しかし、これがエラーメッセージの根本的な原因を解決するかどうかはわかりません...