タグ

epollに関するsudoemacsのブックマーク (10)

  • カーネル/VM Advent Calendar 一日目: eventfd, timerfd, signalfd - Emacs ひきこもり生活

    ひ、日付? な、なんのことです…!? 最初はfutex()とかカーネルの変更でpostgresqlが遅くなったとかの話をからめようかと思ってたんですがfutex()調べてたらどんどん大きくなってしまったので今回はスキップして(そのうちあるであろう)2回目にまわしとくことに。 ということで、今回はfutex()から似たところ?で、 epoll, kqueue, *fdあたりを簡単にまとめてみようと思います。 select まずはselect()のおさらいを。 こんなふうにサーバにクライアントが5つぶらさがっています。クライアントは常時接続はしていますが、ずっとサーバと通信しているわけではありません。時々サーバにリクエストを投げ、サーバは適宜リクエストに応答します。サーバはsocketを作ってクライアントと通信をしています。 言うまでもないことですが、こんなコードではうまく動きません。 for

    カーネル/VM Advent Calendar 一日目: eventfd, timerfd, signalfd - Emacs ひきこもり生活
  • カーネル2.6の実力を探る NTTコムウェア株式会社 Linuxセンタ 佐々木博正

    Linux Kernel Conference 2003/10/10 Copyright NTT COMWARE 2003 Linux Kernel Conference 2003/10/10 Copyright NTT COMWARE 2003 Linux Kernel Conference 2003/10/10 Copyright NTT COMWARE 2003 Linux Kernel Conference 2003/10/10 Copyright NTT COMWARE 2003 Linux Kernel Conference 2003/10/10 Copyright NTT COMWARE 2003 Linux Kernel Conference 2003/10/10 Copyright NTT COMWARE 2003 Linux Kernel Conference 2003

  • node.js とは何か (2) - I am bad at math

    昨日に引き続き、いざ!part2なのだ。 前回では node.js と v8 の結びつきまでを書いたので、今日は Non-Blocking I/O の話を。 Non-Blocking I/O という言葉からブロックしない I/O をイメージするのはたやすい。でもこれを実現しようとなるといろいろとまあ面倒くさいんだよね。 それを解決する常套手段で言うとファイルディスクリプタ(ネットワークならソケットだね)を開いてそれをselectシステムコールの監視対象に加えておき、selectを呼び出すことで監視するっていう方法がある。こうすると何が嬉しいのかファイルディスクリプタが2つある場合で考えてみよう。 まずAとBというファイルディスクリプタを監視対象とする。 selectシステムコールを呼び出し、そのどちらかが読み出し準備完了となっていないかを確認する。 もしどっちも準備できていなかったらプロセ

    node.js とは何か (2) - I am bad at math
  • 非同期I/O Linux

    非同期I/O 概説 Introduction to Asynchronous I/O AIO, I/O Multiplexing… 2007年8月6日 KLab 株式会社 Kラボラトリー 廣瀬 正明 Copyright © KLab Inc. All rights reserved. 今日の目的 非同期I/Oとは何かを知る 非同期I/Oを使うと何がうれしいのかを知る 非同期I/Oを実現する手段(複数)を知る Copyright © KLab Inc. All rights reserved. アジェンダ 非同期I/Oを使う理由 非同期I/Oとは? AIOの実装を紹介 AIOの使い方 落穂ひろい Copyright © KLab Inc. All rights reserved. アジェンダ 非同期I/Oを使う理由 非同期I/Oとは? AIOの実装を紹介 AIOの使い方 落穂ひろ

  • インターネットサーバでのPthreadとepoll(1)

    連載ではシステムコールプログラミングの例も掲載していく予定ですが、記事ではLinuxに追加されたepollを採りあげ、インターネットサーバでのPthread利用と比較してみます。 はじめに マルチスレッドプログラミングが普及し、POSIX threadも制定され、Pthreadの利用は目新しいものではなくなりましたが、スレッドにまつわる迷信や誤った認識を、だいぶ減ったとはいえ、今でもたびたび耳にします。例として、 スレッドはプロセスよりも軽いので、多数作成しても軽快に動作する スレッドはプログラミングを簡単にしてくれ、1つの処理だけに集中できる などがあります。しかし、これらは常に真であるとは限りません。記事ではマルチスレッドの概念や入門を繰り返すのではなく、その利用方法をHTTPサーバのサンプル実装を基に考察します。更にLinuxに追加された独自機能のepollインタフェースを用い

    インターネットサーバでのPthreadとepoll(1)
  • epoll を使ったエコーサーバ的な何かを書いてみた - punitan (a.k.a. punytan) のメモ

    イベント駆動で書くと クラウド破産を回避できたり、自宅サーバを守れるというメリットがあるらしいので、どうせなら epoll を使ってみようということで。 epoll を使った echo サーバ - odz buffer と mixi engineer blog と man が参考に。 某所経由で id:koizuka 氏にいろいろ教わり助かりました。 nginx 速すぎで大変悲しい結果に。 ソース epoll を使った echo サーバ - odz bufferから勝手forkです。問題/間違い等あれば連絡いただければありがたいです。 エラー処理は省略気味。 ベンチマーク それぞれ debian 上で epoll_sample, nginx, Apache2 を実行。nginx, apache2 ともに apt-get install で持ってきて設定はデフォルトのまま。 epoll_sa

    epoll を使ったエコーサーバ的な何かを書いてみた - punitan (a.k.a. punytan) のメモ
  • TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと

    TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと 目次 この文書について C10K 問題 関連サイト まず読むべき I/O フレームワーク I/O 戦略 1. 各スレッドが複数のクライアントを受け付ける. そしてノンブロッキング I/O と レベル・トリガ型の完了通知を利用する. 伝統的な select() 伝統的な poll() /dev/poll kqueue() 2. 各スレッドが複数のクライアントを受け付ける. そしてノンブロッキング I/O と 変更型の完了通知(readiness change notification)を利用する. kqueue() epoll リアルタイム・シグナル fd 単位のシグナル (Signal-per-fd)

  • mixi Engineers’ Blog » Linux Programming、epollの話

    お久しぶりです、初めての日の夏に圧倒されているトールマエサカです。 今日はLinuxにおけるネットワークプログラミング関連のネタです。分散データベースサーバの開発過程で最近よくLinuxのepollというイベントハンドリング機能を使っています。これがまた優秀な機能なので紹介します。 このContextでいうイベントハンドラーはサーバがクライエントのリクエストを処理するためのメカニズムです。イベントの感知と通知は大雑把にいうと以下の三つの処理で構成されています: 一つもしくは複数のディスクリプタを監視 ディスクリプタの準備が整うまでハチ公のごとくひたすら待ち続ける 準備が整ったディスクリプタの通知 アプリケーションでの実装は一昔までselect(2)、もしくはpoll(2)というシステムコールで行われていました。二つとも役目は同じですがselect(2)の場合、kernelをいじらない限り

    mixi Engineers’ Blog » Linux Programming、epollの話
  • Tornadoドキュメント翻訳 — Tornado v0.2 documentation

    ライセンス¶ Tornadoは Facebookのオープンソース技術 の一つです。このプログラムは Apache Licence, Version 2.0 で使用することができます。 このウェブサイトと、すべてのドキュメントは Creative Commons 3.0 のライセンスの元に公開されています。 翻訳について¶ 翻訳もオリジナルの 文書 と同じ、 Creative Commons 3.0に準拠します。 翻訳は以下のメンバーが行っています。 渋川 山口 (ymotongpoo) a2c nishio

  • epollのなかみ - moriyoshiの日記

    よく C10K 問題とかいって epoll(7) の話が出てきて select(2) 遅いね poll(2) 遅いねってなるんだけど、正直なところ、これらのシステムコールを実際に使ってコードを書いてみたひとはどのくらいいるのだろう。ましてや eventpoll が何やってるか知っている人はそんなに多くないんじゃないだろうか。もう O(n) だの O(1) だのって煙に巻かれるのもうんざりだ。 というわけで、2.6.26 の fs/eventpoll.c のコードを読んでみた。正直 Linux カーネルにすごく詳しいわけでもないので、誤りがあったら適宜突っ込んでもらえると幸いです。 前提知識として VFS モジュールがどうなってるかとかは LinuxのFSモジュールを書いてみる LinuxのFSモジュールを書いてみる (その2) のソース中のコメントを追ってもらえればと。 登場する構造体 e

    epollのなかみ - moriyoshiの日記
  • 1