タグ

TCPに関するmo12inoのブックマーク (5)

  • 同時接続 700 万、秒間 2 万通という Nintendo Switch 向けプッシュ通知システム NPNS の資料を読んで

    AWS Summit Tokyo 2018 で実施されたセッション資料・動画をダウンロードすることができます。(順次公開) ※AWS Summit 2018 へお申し込みいただいていない場合、別途ダウンロード申し込みが必要となります。… 【任天堂様ご登壇事例】Nintendo Switch (TM) 向けプッシュ通知システム「NPNS」AWS はよくわからないので Erlang/OTP 視点のみです。 ejabberdejabberd はフランスの ProcessOne という会社が開発している XMPP サーバです。XMPP が何かはここでは説明しません。 ejabberd は TLS や XML 周りの性能を出すため C で書かれている以外、他はすべて Erlang/OTP で書かれています。 ejabberd の歴史はとても古く、自分が Erlang を学び始めた頃にはすでにありまし

    mo12ino
    mo12ino 2019/01/17
    「負荷分散][Erlang]
  • HTTPのためのTCPチューニング (Best Current Practice) - ASnoKaze blog

    HTTPを効率よく使用するためにTCPのチューニングはかかせません。 Best Current Practiceカテゴリとして「TCP Tuning for HTTP (draft 00)」というInternet-Draftが提出されているので、ざっと目を通した。(割と適当) 大きく分けて下記の5つについて書かれており、特筆のない限りHTTP/1.1でもHTTP/2有効なプラクティスです。 2 Socket planning 3 TCP handshake 4 TCP transfers 5 Re-using connections 6 Closing connections (1はイントロダクション 2 Socket planning 2.1 Number of open files 殆どのOSでソケットを開ける数は、オープンできるファイル数と等しいです。 その上限がボトルネックになって

    HTTPのためのTCPチューニング (Best Current Practice) - ASnoKaze blog
  • 負荷が低いのにアクセスを捌けきれない時の対応 - Carpe Diem

    概要 MongoDBCPU使用率やロードアベレージが高くないのに処理が詰まっている現象が起きました。 その時間にbatchが動いていてアクセスが急に増えることが原因と言うのは分かっているのですが、負荷的には十分余裕があり不思議な状態でした。 そこでdstatで見るポイント - Carpe Diemでも述べたように、負荷の状態から判断する基準があります。 ロードアベレージを確認する 1が高ければCPU、ディスクI/O、メモリにボトルネックがある 1が低ければTCPコネクションにボトルネックがある 今回の現象から判断するに、TCPコネクションに原因がありそうです。 原因調査 Too many open filesは出ているか ファイルディスクリプタが足りない場合はコネクション数が足りずに処理が詰まってしまいます。 そしてその場合Too many open filesというエラーが出ます。 し

    負荷が低いのにアクセスを捌けきれない時の対応 - Carpe Diem
  • Backlogってなんぞや - ukinau's diary

    はじめに サーバソフトウェアの設定ファイル等でよく見かける項目であるBacklogってどういう意味なんだろうと、少し調べたのでメモを残します。 Backlog apacheやnginx、memchachedなどのサーバ系ソフトウェアの設定ファイルの中で設定することが多い、このBacklogとは何なのかをここでは言及する。 サーバアプリケーションがlistenしているソケットがacceptしていない、確立済TCPセッションを何個までOS側で保持するかを定義したもの。 例えば、下記のようなサーバーアプリケーションがあるとする。 server.py import evenlet server_sock = eventlet.listen(('0.0.0.0', 6001),backlog = 1) new_sock, address = server_sock.accept() new_sock

    Backlogってなんぞや - ukinau's diary
  • 基本TCPソケット2−1 - s-kita’s blog

    listen関数 1.クライアントからSYNが到着 2.TCPは確立待ちコネクションキュー上に新しいエントリを作成 3.3WHSが成功すると、対応するエントリが確立待ちコネクションキューから確立済みコネクションキューの末尾に移動する。 4.accept関数を呼び出すと、確立済みコネクションキューの最初のエントリがプロセスに返されるか、キューが空であった場合は、確立済みコネクションキューに加えられるまでプロセスはスリープ状態におかれる。 環境変数でbacklogの値を指定できるようにしたlisten関数ラッパ void Listen(int fd, int backlog) { char *ptr; if ( (ptr = getenv("LISTENQ") ) != NULL ) backlog = atoi(ptr); if (listen(fd, backlog) < 0) err_s

    基本TCPソケット2−1 - s-kita’s blog
  • 1