Debianのalloc_skbにあるdeactivate_slab.isra.82のコストを削減する方法はありますか?

Debianのalloc_skbにあるdeactivate_slab.isra.82のコストを削減する方法はありますか?

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 が多いワークロードでパフォーマンスが大幅に向上し、ボトルネックを引き起こす明らかな単一カーネル機能がなくなりました。

おすすめ記事