タグ

socketに関するgfxのブックマーク (6)

  • Kazuho@Cybozu Labs: TCP通信ではデータの送信をまとめて行うべき、もうひとつの理由(& サーバのベンチマーク手法の話)

    TCP通信をするプログラムを書く際に「データの送信はまとめて1回で」行うべき、というのは鉄則と言っていい、と思います。その理由としては、パケット数を最小限に抑えることでオーバーヘッドを少なくするためだと一般に説明されますが、自分はもうひとつポイントがあると考えています。次のグラフを見てください。 グラフは、一定量のデータを転送するのにかかる時間と使用するブロックサイズ(1回のwrite(2)で書き込むサイズ)の関係を表したものです注1。 ホスト間のTCP通信を行っている場合は、TCPのバッファが有効に機能するので、ブロックサイズ(=パケット数の逆数)による速度の変化は、ほぼありません。一方、同一ホスト上で通信を行うと、ブロックサイズと反比例して所要時間が反比例の関係にあることがわかります。 原因は、同一ホスト上の通信では、送信プロセスがwrite(2)を呼ぶたびにコンテクストスイッチが発生

    gfx
    gfx 2013/11/25
  • 親子関係のないプロセス間でファイルディスクリプタを共有する - tmtms のメモ

    UNIX や Linux でプロセス間でファイルディスクリプタを共有するには、ファイルディスクリプタを作成後に fork して親子間で共有するという方法が良く取られますが、UNIXドメインソケットを使って、親子関係のないプロセス間でファイルディスクリプタを受け渡すことができます。 C だといろいろ面倒なのですが、Ruby だと UNIXSocket#send_io と #recv_io を使って簡単に実現できます。 sender.rb require 'socket' File.unlink 'socket' rescue nil sock = UNIXServer.new 'socket' s = sock.accept f = File.open ARGV.first s.send_io f receiver.rb require 'socket' sock = UNIXSocket.

    親子関係のないプロセス間でファイルディスクリプタを共有する - tmtms のメモ
    gfx
    gfx 2013/07/26
  • unix domain socketでファイル記述子をやりとりするソケットプーリングを書いてみた - (ひ)メモ

    unix domain socket経由でプロセス間でファイル記述子のやりとりができるので、コネクションをプーリングして、unix domain socket経由で別プロセスに貸し出すスクリプトを試しに書いてみました。 https://github.com/hirose31/socket-pooling poold.pl は起動すると 127.0.0.1:11211 へのコネクションを 3 つ作って保持し、unix domain socketをlistenしてクライアントからの貸し出し要求を待ちます。 ちなみに、unix domain socket は名前付きのではなく、abstract namespace のを作っています。これの利点は、パスに依存しないので、chroot内のプロセスと外のプロセスがやりとりできる点です。 client.pl は起動すると、unix domain sock

    unix domain socketでファイル記述子をやりとりするソケットプーリングを書いてみた - (ひ)メモ
    gfx
    gfx 2013/05/22
  • ファイル記述子をUnixドメインソケット経由で渡す - bkブログ

    ファイル記述子をUnixドメインソケット経由で渡す Unix 系の多くの OSには、ファイル記述子を別のプロセスに Unix ドメインソケット経由で渡す機能があります。一見、何のために使うのかよくわからない機能ですが、 glibc の nscd はこれをうまく使っています。 nscd (name service caching daemon) は glibc 内で行われる名前関連の問い合わせをキャッシュするサーバです。NIS や LDAP などを用いてネットワークベースでユーザ管理を行っている場合、 getpwuid() などの関数はユーザ名の取得にネットワークアクセスを必要としますが、 nscd を立ち上げておけば、二度目からの同じ問い合わせはキャッシュから得られます。 nscd を立ち上げている GNU/Linux システムでは、キャッシュファイルが /var/db/nscd 以下に作

  • node.js+socket.ioを使ったライブコーディングwebアプリを作ってる - すぎゃーんメモ

    かれこれ2ヶ月くらい、ちまちまと作り続けていたのがようやく動くようになったかなーという状態になったので公開してみる。 http://www1216u.sakura.ne.jp/livecoder/ 公開停止しました 手元のMacChrome, Safari, Firefoxでは動いていた。IEは知らない。 ソースはGithubに。 https://github.com/sugyan/live-coder 使い方 Twitterでsignin。 /edit のエディタ上でテキストを編集すると、 /view/ でリアルタイムに編集が反映される(こちらはread only)。 同じユーザのページを見ているユーザ同士でのテキストチャットが可能。 構成 Server node.js v0.4.1 ライブラリはnpmにて socket.io, express, ejs, oauth, configを

    node.js+socket.ioを使ったライブコーディングwebアプリを作ってる - すぎゃーんメモ
    gfx
    gfx 2011/02/22
    これは面白い!!!
  • echoサーバーを書こう - Articles Advent Calendar 2010 Perl6

    こんにちは、@lopnorこと檀上です。と、これまで誰も名乗らずにここまできてしまいましたJPerl Advent Calendar 2010 - perl6 trackですが、ここでこれまでの執筆者をご紹介します。 @risouさん [/articles/advent-calendar/2010/perl6/7:title=インタラクティブな実行環境を使おう] @uasiさん [/articles/advent-calendar/2010/perl6/8:title=モジュールを公開してみよう] @VienosNotesさん [/articles/advent-calendar/2010/perl6/9:title=『Perl6入門』入門] @lopnor 残りの記事 です。まだまだ原稿が足りないので、Perl 6について語っちゃうよ!という方はぜひお声がけください。よろしくお願いします

    echoサーバーを書こう - Articles Advent Calendar 2010 Perl6
  • 1