開発者は zswap 用の 2 つの最適化パッチを提出し、特定のテストでのページ読み取り遅延が大幅に減少しました。

📅 2026-10-07

要約:

Linux 開発者の Osama Arif は、zswap がスワップ ページをロードする際のリクエストの競合を減らすことを目的とした 2 つのパッチをカーネル メーリング リストに提出しました。 Zswap は Linux の圧縮キャッシュ メカニズムです。スワップアウトするページを圧縮し、メモリに一時的に保存します。圧縮キャッシュからページを読み取ることができれば、スワップ デバイスへのアクセスを減らすことができ、メモリが不足している場合のディスク I/O の負荷を軽減するのに特に役立ちます。

image.webp

問題は、既存のコードが圧縮書き込みと圧縮読み取りで非同期の CPU ごとの圧縮リクエストとミューテックス ロックを共有することです。ロック期間中に優先度の低い書き込みタスクがプリエンプトされると、優先度の高い読み取りタスクも待機することになる可能性があります。最初のパッチは、圧縮と解凍にそれぞれリクエスト、待機オブジェクト、ミューテックス ロックを設定するため、書き込みタスクによって読み取りがブロックされなくなります。 2 番目のパッチにより、同期ソフトウェア圧縮アルゴリズムがオンスタック要求を使用して zswap ロックをさらにバイパスできるようになります。非同期処理または追加のリクエスト コンテキストを必要とするアルゴリズムでは、依然として CPU ごとのリクエストとミューテックス ロックが使用されます。

パッチ作成者が公開したベンチマーク テストによると、単一の仮想 CPU 環境では、ラウンドあたりの最も遅い読み取りレイテンシーの中央値が 22.3 ミリ秒から 0.97 ミリ秒に減少しました。 8 仮想 CPU 環境では、314 ミリ秒から 7 ミリ秒に短縮されました。各テストは 5 ラウンド実行され、zstd コンプレッサー、仮想マシン、メモリ ディスクをスイッチング デバイスとして使用し、さまざまな優先順位のタスクを通じて負荷を作成しました。 10 ミリ秒を超える読み取り回数も、シングル コアではラウンドあたり 26 ~ 35 回からゼロに削減され、マルチコア環境ではラウンドあたり 3 ~ 18 回から最大 1 回に削減されました。著者らは、ベンチマークとテスト プログラムは大規模な言語モデルを利用して書かれていると述べています。

これらの数値は、特定のストレス テストでの読み取りレイテンシーの改善を反映しており、すべての Linux デバイスまたは日常のワークロードで全体的に同じ速度向上が見られることを意味するものではありません。

パッチはまだカーネル メーリング リストのレビュー段階にあり、まだメインライン カーネルにマージされていません:

https://lore.kernel.org/lkml/

[email protected]

/

関連タグ

関連記事

コメント

0/500
Captcha (click to refresh)
コメントなし