タグ

aioに関するclavierのブックマーク (4)

  • Linuxでaio - (ひ)メモ

    実装が2つある。以下、あくまで今の時点でのLinuxの場合の状況/実装のおはなし。 POSIX aio aio_read(3) とか aio_write(3), aio_error(3), aio_return(3) とか。 インターフェースはPOSIXで定義されているのと同じ。 システムコールじゃなくてライブラリ関数(librt) 裏でpthreadつくってがんばってるげ。 libaio http://lse.sourceforge.net/io/aio.html http://ftp.jaist.ac.jp/pub/Linux/Fedora/development/source/SRPMS/libaio-0.3.106-3.2.src.rpm とか io_prep_pread(2), io_prep_pwrite(2), io_submit(2), io_queue_init(2),

    Linuxでaio - (ひ)メモ
  • Linuxの非同期I/Oについて - takkan_mのNo planな日常

    最近、LinuxのI/Oまわりについて調べていた延長で、ちょうど一年ぐらい前にlighttpdの1.5が採用して性能があがったといわれた、非同期I/Oまわりについて調べてみたので、これから現状自分がわかっている範囲でのまとめと疑問点を書いてみます。ひとつのエントリに書いてしまうと、ものすごく長くなりそうなので、linux_aioというタグをつけていきます。 というわけで、よくわかっていない部分もあるので、間違い等あれば指摘いただけると、うれしいです。 LinuxのI/Oは同期?非同期? 2007-10-13 なぜ非同期I/OのAPIが存在するのか 2007-10-13 POSIX準拠の非同期I/O 2007-10-13 2007-10-15 - takkan_mのNo planな日常 2007-10-15 どうやってI/Oの完了をうけとっているか(準備編) - takkan_mのNo pl

    Linuxの非同期I/Oについて - takkan_mのNo planな日常
  • Linuxの非同期IO(libaio)を使う上での注意点 | Everyday Deadlock

    Linuxで非同期IOを実行する方法としては POSIX AIO (glibcによる実装) libaio (Linuxカーネル内の実装) の2つがあります。POSIX AIOを使った非同期IOは、実態としては裏でスレッドを生成してpread(2)/pwrite(2)を使ってIOを発行しているだけなので、性能があまりよろしくありません。そのため、ポータビリティが必要でない場合には、Linuxネイティブのlibaioを使うことが妥当です。 しかしながら、2011年現在このlibaioに関してはドキュメントが充分に整備されておらず、manpageも誤った記述が多々見受けられるという残念な状況にあります。私も実際にlibaioを使おうとして、よくわからないエラーに延々苦しめられました。このエントリでは、libaioの基的な使い方から、libaioを使う上ではまりがちなバッドノウハウなどをまとめて

  • 非同期入出力の残念な現状

    asynchronous disk I/O | libtorrent blog Libtorrent experience - the poor state of async disk IO | Hacker News libtorrentの作者が、ディスクI/Oをパフォーマンスを向上させるために非同期I/Oを試した結果、どの環境でも残念なので、ブロックI/Oをスレッドプールで行う擬似非同期I/Oで実装したとブログを書いている。その問題について、Hacker Newsでも議論されている。 非同期I/Oは、話を聞くとたのもしい機能に思える。読み書きが完了するまでブロックせずに、完了したらOSが通知するという仕組みだ。 問題は、その実装がどの環境でも貧弱だという事だ。 環境というのは、主にOS側のことだ。多くのモダンなOSは非同期I/Oを提供している。特に著名なのがみっつある。 Linux A

  • 1