Message
printk: msg_num messages suppressed.
Arguments
- msg_num
- 出力をスキップしたメッセージ数
Description
ネットワークサービスに対するDoS攻撃対応などのために、大量メッセージ出力を抑制する機能によってメッセージの出力をスキップした。
このメッセージは、printk_ratelimit、またはmessage_costカーネルパラメタによるメッセージの流用制御の対象となっているメッセージが大量に出力された場合に出力する。
printk_ratelimit、及びmessage_constパラメタでは、対象メッセージの最小出力間隔を設定する(デフォルトは5秒)。この間隔内でメッセージが出力された場合、そのメッセージはスキップされ、その数がカウントされていく。メッセージ出力間隔が正常(つまり、最小出力間隔を超過)に戻った時点で当該メッセージによってスキップしたメッセージ数が報告される。
本流用制御の対象となるメッセージは限定されている。知りたい場合は、printk_ratelimit()、またはnet_ratelimit()をソース上から検索し、調査すること。
Category
Action
前後で出力されたメッセージなどからDoS攻撃の攻撃元や攻撃方法を特定して、対応策をとる。ネットワークからのDoS攻撃ではなかった場合、特定処理のループなどが考えられる。この場合も前後のメッセージなどから現象を調査し、ループの原因を解消させる。必要であれば、サポート依頼先に連絡する。
Misc
大量メッセージ出力の抑制機能は、カーネルのソースコードとしては、printk()マクロの発行前にnet_ratelimit()関数またはprintk_ratelimit()関数を使用してメッセージ出力が可能か否かを事前に検証し、当該関数がTrueを返した場合にprintk()を発行することにより実現されている。これらの関数は_printk_ratelimit()関数を呼び出す。_printk_ratelimit()関数は、メッセージの抑制条件をチェックし、メッセージ出力する際にそれまでに抑制されたメッセージがあると、このメッセージを出力する。
Example
printk: 5 messages suppressed.
