
deactivate_slab.isra.82
コール__alloc_skb
(15%+ CPU時間)によってボトルネックが発生するUDP使用量が多いワークフローがあります。 allocメソッドはIntelカードドライバ内で最も頻繁に呼び出されるように見えますが(RXパスであると仮定します)、sendシステムコールでも呼び出されます。
このボトルネックにより、10Gサーバーでは約1.1Gbpsしかプッシュできず、このオーバーヘッドを減らすために調整できるカーネルパラメータがあるかどうかを知りたいです。おそらく、SKBの利用可能なリストサイズを増やすことによって、kernel-mallocパスは頻繁にヒットされません。
slub_debug
この機能は Debian でデフォルトで有効になっており、アプリケーション速度がさらに遅くなることを確認しました (850Mbps から 1.1Gbps に)。
答え1
これはslub_debugオプションに関する私の誤解です。このオプションをオフにする正しい方法は "slub_debug = -"です。 "slub_debug = off"はスラブデバッグチェックを無効にしますが、すべてのデバッグコードを無効にするわけではありません。
デバッグモードを適切に無効にすると、UDP が多いワークロードでパフォーマンスが大幅に向上し、ボトルネックを引き起こす明らかな単一カーネル機能がなくなりました。