2

最近、高性能な Web サーバーの書き方を学んでいます。epoll は aio よりも速いという RedHat の実験があります。Linuxカーネルのaioがpthreadで実装されているため、誰かがそれを言います。これを証明する最新情報を見つけるのは難しいです。また、Linux で epoll が現在 aio よりも優れているかどうかもわかりません。Linux 2.6.x での aio に関する最新情報はどこで入手できるか知りたいです。ありがとう!

4

1 に答える 1

1

同じ分野を研究しています。

Linux で aio を動作させることさえできますか? 私は aio_write() で 300M を書き込み、それらをキャッシュ内のダーティ ページと見なします。つまり、IO スケジューラに直接ではなく、VM とその後の pdflush/flush に移動します。つまり、aio はバッファリングされた io と同じくらい良い/悪いです。

ビルド マシンでは 2.6.16.46、ターゲットでは 2.6.27.19 を使用しています。これは正確には最新の Linux カーネル/ライブラリではないため、問題になる可能性があります。

もう 1 つの側面は、使用する IO スケジューラです。CFQ は同期 IO を優先しますが、非同期用に調整することもできます。また、IO 優先順位もサポートしています。

まず、IO を実行するときにいくつかの場所を監視することをお勧めします。

  1. /proc/meminfo - ダーティ ページの傾向を確認する
  2. echo 1 > /proc/sys/vm/block_dump して syslog を監視すると、誰がいつ書き込みを行っているかがわかります
  3. sar -dp 1 - デバイスが 100% 使用されているかどうかを確認します
  4. CD /プロセス; 猫 */ステータス | grep State - ディスク上で誰がブロックされているかを確認する
  5. /sys/block//queue/iosched - io スケジューラの調整可能変数
于 2010-08-20T17:13:26.037 に答える