Learn from our experts, hear from your peers at Percona.connect Learn more
Learn from our experts, hear from your peers at Percona.connect Learn more
The RX1 Files The RX1 Files is a showcase of the finest photography, shot with Sony's Cyber-shot DSC-RX1 [compact full frame camera, 24.3MP, Carl Zeiss Sonnar T* f2/35mm]
たまにはLinuxネタを。 Listenバックログは、伝統的なUNIXの実装だと、SYN_RCVDとESTABLISHEDの両方のソケット数を数えますが、LinuxのそれはESTABLISHEDな状態の数だけを数えるようになっています(manを見よ)。 これは何でかというと、いわゆるSYN Flooding攻撃への対応として、Linuxはsyncookieを実装したことの副作用なのだと思います。syncookieを実装していると、SYNに対してSYN_ACK(COOKIE)を返すコストがほぼゼロ(メモリコストとしては)になるので、来たSYNにすべてSYN+ACKを返すことが可能です。 したがって、SYN_RCVDの数は数えても意味がなくなったので、それはListenバックログの数としてカウントしないようにした、ということのようです(厳密に言うと、tcp_max_syn_backlog個まで
前回の続き。 パケット自体を零さずに処理に入った後にSYNを落とすのは以下3パターン。 syncookie無効時にsynのbacklog(tcp_max_syn_backlog)が溢れている listenのbacklogが溢れている(3way-handshake完了後のaccept待ち接続) net.ipv4.tcp_tw_recycleの制限に抵触 で、今回問題になっていたのは最後のtcp_tw_recycleへの抵触だった。 現象として発生しうるのは、以下の条件をすべて満たす場合 サーバ側でnet.ipv4.tcp_tw_recycleが有効 TCPタイムスタンプオプションを使用 同一IPからの接続でセッションを跨ぐとセットされるTCPタイムスタンプの値が戻る場合がある 最後の条件が微妙だが、TCPタイムスタンプの値としてセットされる値は起動時を 起算時にしていたりと実装によって初期値
http://shanon-tech.blogspot.jp/2013/05/perl.html Perl モジュールの作り方、2013年においては Authoring tool をつかって作るのがよいです。具体的には Minilla でつくるのがオススメであります。 perlbrew なり plenv なりで perl をいれたあとは、 % cpanm Minillaとして Minilla をインストールします。 % minil new Fooとすると、Foo.pm のスケルトンができあがります。作者の名前などは ~/.gitconfig などから自動的にさがしてきますので、設定不要です。 できあがったディレクトリは以下のような形になっています。 Foo ├── Build.PL ├── Changes ├── cpanfile ├── lib │ └── Foo.pm ├── LI
おしょうさんのを盛大にパクった。罪悪感はない。 netlib で HTTP Server を書いてみた - C++でゲームプログラミング netlib で HTTP Server を書いてみた Boost . Asio だけだとしんどそうだったので netlib でちょっと書いてみました。 [環境] netlib 0... http://d.hatena.ne.jp/osyo-manga/20130511/1368242653 mattn/cpp-lingrbot - GitHub https://github.com/mattn/cpp-lingrbot #include <boost/network/include/http/server.hpp> #include <picojson.h> struct cpp_bot { typedef boost::network::http::
Boost.Asio だけだとしんどそうだったので netlib でちょっと書いてみました。 [環境] netlib 0.9.5 Boost 1.53.0 Visual Studio 2010 [ソース] #include <boost/network/include/http/server.hpp> struct hello_world{ typedef boost::network::http::server<hello_world> server; void operator ()(server::request const &request, server::response &response){ namespace http = boost::network::http; typedef server::string_type string; string ip = http:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く