Ruby
ビッグデータ
高トラフィック

外部APIを利用したら、高トラフィックを捌けなかった

More than 1 year has passed since last update.

経緯

外部APIを利用して大量データをリクエストした時のお話。

Too many open files というエラーが発生し処理ができない、、

何がおきたのか

接続しているソケットのファイルディスクリプタがオーバーフローしている様です。

ファイルディスクリプタって何?って方はこちらの記事を
http://qiita.com/toshihirock/items/78286fccf07dbe6df38f

リクエストする側はLinuxのチューニングで対処できそうですが、(下記の記事を参考)
http://qiita.com/snaka/items/b6520303e37ebde298d2

APIサーバ側は触れないのでどうしようにもない、、

対応

Too many open filesのクラス Errno::EMFILEをハンドリングして、ソケット切替り & コネクションの確立を待機して対応。