タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

epollに関するkomlowのブックマーク (7)

  • How to use epoll? A complete example in C - Banu Blog

    Network servers are traditionally implemented using a separate process or thread per connection. For high performance applications that need to handle a very large number of clients simultaneously, this approach won't work well, because factors such as resource usage and context-switching time influence the ability to handle many clients at a time. An alternate method is to perform non-blocking I/

  • echoサーバーを書いてみたときのメモ その1 ソケットAPIとTCP - bati11 の 日記

    echoサーバーを書いた日の日記。 Head First C の11章を参考に、クライアントから文字列を受け取り、受け取った文字列をそのままクライアントへ返すechoサーバーを作る。echo サーバーは30000ポートを使用することにする。途中疑問に思ったところは主にUNIXネットワークプログラミングで調べた。 UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI 作者: W.リチャードスティーヴンス,W.Richard Stevens,篠田陽一出版社/メーカー: ピアソンエデュケーション発売日: 1999/07メディア: 単行購入: 8人 クリック: 151回この商品を含むブログ (35件) を見る Head First C ―頭とからだで覚えるCの基 作者: David Griffiths,Dawn Griffiths,中田秀基,木下哲也出版社/メー

    echoサーバーを書いてみたときのメモ その1 ソケットAPIとTCP - bati11 の 日記
  • 最速TCPサーバーの件でちょっと分からないこと(解決) - kuenishi's blog

    epoll + fork 版サーバーは、予想通り thread 版を大きく 突き放すスコアをたたき出し、しかもまだCPU使用率には余力が残っていました。CPUを使い切れて いないのは、多分実験機のNICの Broadcom BCM5754 が複数コアに割り込みを分散する機能を もっていないためで、NICを増やしたり割り込み分散機能のあるNICを使えばもっと 差が広がると思います。 @mathaneさんはepoll+forkが最速になるだろうと予想していて、結果も予想通りになっているわけですが。Linuxカーネルからみるとネイティブスレッドもふつうのプロセスと同様にLWPと1:1対応しているわけでfork版とコンテキストスイッチのオーバーヘッドはそう変わらないはずだ。むしろ別プロセスをコンテキストスイッチする方が仮想メモリ空間の切り替えの分だけ重そうだから、僕の知識の範囲ではthread版の

    最速TCPサーバーの件でちょっと分からないこと(解決) - kuenishi's blog
    komlow
    komlow 2017/04/23
  • TCPサーバーの非同期処理はけっきょくどの手法がいいのか? - Qiita

    昔Unix系システムではselect()でIO処理を非同期にして、ファイルディスクリプタの状態に変化があった場合のみ処理を行うことができた。これはメモリやサーバーリソースが極端に少なかった時代に有効な手法だった(らしい)。90年代後半、00年代前半にはマルチスレッドが主流になり、サーバーサイドではAcceptして受け入れたクライアントのソケットをスレッドに渡して送受信を行うことでコネクションの多重化を行った。(もちろん目的に応じて非同期も活躍していた) 00年代後半からC10K問題が騒がれ、node.jsやnginxが登場した。大量のスレッドを生成してリソースやメモリを消費する方法よりも、再びソケットをノンブロッキングにしてディスクリプタの状態を監視する非同期処理が注目されるようになる。そして最近ではjavascript promise、RX、Reactive Extensionなどクライ

    TCPサーバーの非同期処理はけっきょくどの手法がいいのか? - Qiita
    komlow
    komlow 2017/04/23
  • epoll を使った echo サーバ - odz buffer

    自分用メモ。epoll & Non-Blocking IO による echo サーバの例。 使い方のテスト以上のものではないので、そのままではいろいろまずい。epoll_create や socket で取得した file descriptor を close してなかったり。まねしないように。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <sys/socket.h> #include <sys/types.h> #include <sys/epoll.h> #include <netinet/in.h> #define SERVER_PORT 10007 #define MAX_EVENTS 10 #define BAC

    epoll を使った echo サーバ - odz buffer
  • mixi Engineers’ Blog » Linux Programming、epollの話

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

    mixi Engineers’ Blog » Linux Programming、epollの話
  • Man page of EPOLL

    Section: Linux Programmer's Manual (7) Updated: 2019-03-06 Index JM Home Page roff page 名前 epoll - I/O イベント通知機能 書式 #include <sys/epoll.h> 説明 epoll API は poll(2) と同様の処理を行う、つまり、複数のファイルディスクリプタを監視し、その中のいずれかが入出力可能な状態であるかを確認する。 epoll API は、エッジトリガーインターフェースとレベルトリガーインターフェースのいずれとしても使用することができ、監視するファイルディスクリプターの数が多い場合にも使用できる。 The central concept of the epoll API is the epoll instance, an in-kernel data structu

  • 1