タグ

linuxとsocketに関するMonMonMonのブックマーク (4)

  • TIME_WAITに関する話 | GREE Engineering

    こんにちわ。せじまです。 先日ポチった C302CA が届いたんですが、(話が長くなるのですごい雑にいうと)Chromebook の、いろいろ削ぎ落として最適化するという方向性には、とても学ぶところがありました。 昨年末、 MySQLのサーバ集約に取り組んでいるという話をさせていただきましたが、「DB集約できてきたので、Webアプリケーションサーバも集約するかー」ということで、最近はWebサーバの集約にも取り組んでいます。 ただ、PHPゴリゴリ書いてるのではなく、集約していく上で Linux や TCP 的な観点からチューニングしたほうが良いところを見てまして、そのへんについてあるていどまとまったので、次のスライドを書かせていただきました。

    TIME_WAITに関する話 | GREE Engineering
  • 「net.ipv4.tcp_tw_recycle」を有効にするのは(場合によっては)やめた方がいい - pullphone's blog

    そもそも「tcp_tw_recycle」ってなに? TIME_WAIT状態のソケット*1を高速に再利用するためのLinuxカーネル特有の仕組みらしい。 「/etc/sysctl.conf」でこいつ(net.ipv4.tcp_tw_recycle)を1にしてやって「sysctl -p」するだけで有効になります。 「TIME_WAITのソケットを少なくしてくれるんでしょ?いいじゃん!」という感じで設定してしまいそうになりますが・・・ なんでダメなの? 結論から言うと、こいつを有効にしたとき、同じグローバルIPのクライアントからの接続でかつTCPパケットにタイムスタンプ情報が入っている場合で、ほぼ同時にパケットを送ると、古いタイムスタンプの方のパケットを勝手にドロップしちゃいます。 どういうことなの・・・ 「tcp_tw_recycle」は、「同一IPからのパケットが到着したとき、使っていたソケ

    「net.ipv4.tcp_tw_recycle」を有効にするのは(場合によっては)やめた方がいい - pullphone's blog
  • ネットワークプログラミングの基礎知識

    ネットワークプログラミングの基礎知識 ここでは IP アドレスやポート番号、クライアントとサーバの役割などを説明し、 perl・C言語・Java などでソケット (Socket) を使った HTTP クライアントや POP3 クライアント、簡単なサーバを作成してみます。 要はネットワークプログラミングをやってみよう、ということです。 このページのサンプルプログラムは、RFC などの規格に準拠した「正しい」プログラムではありません。 また、全体的にエラー処理が不十分です (今後改善する予定です)。 あくまでも概要を理解するためのサンプルととらえてください。 もし気でしっかりとしたクライアントやサーバを書きたいなら、このページを読んだ上で、 さらに RFC を熟読し、そして wget・Apache・ftp コマンドなどのソースを参考にしてください。 このページに間違いを見付けたら、掲示板

  • C10K問題の今と未来 - geniee’s tech blog

    唐突ですが、一回目の記事を書きます! 今回は、主にウェブサーバー、具体的にはLinuxのSO_REUSEPORT(プログラミング言語としてはC言語)の話題になります。背景として、弊社では、広告配信がいわゆるネイティブアプリケーションであるため、ウェブサーバーの開発を行っているといったことが挙げられます。そもそも今回の記事を書いたきっかけは、弊社でSO_REUSEPORTを使用し始めており、それについて紹介したいと考えたからです。 特にC10K問題については TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと が詳しいので今回は説明を省略します。 また、Linux(正確にはKernel 3.9以降)におけるSO_REUSEPORTについては、 或るプログラマ

    C10K問題の今と未来 - geniee’s tech blog
  • 1