shimada-kの日記

ソフトウェア・エンジニアのブログです

バックエンド

httperfでnginxにおける非同期処理の限界を知る

nginxに負荷をかけて遊んでみました。webによくあがっているnginxのベンチマークは適当な静的ファイルを1つ用意してそこに対してアクセスを行うといったものです。 ただそれだとメインメモリのファイルキャッシュにのっているものを返すだけで、オンメモリで…

nginxは新規リクエストをどう受け付けるのか

nginxで新規のリクエストが発生した場合の処理をソース上で追いかけてみました。 nginxはワーカープロセスを指定した数だけ起動させてそのプロセス内で非同期にリクエストをさばいていますが複数のワーカープロセスが存在した場合、新規リクエストはどう振り…

MySQLでインデックスが効いてないとつまりどうなるのか

MySQLでインデックスを使用しないクエリを投げると実際遅いことは分かるんですけど、マジックワード感があるのでなぜ遅くなるのか考えてみました。 すごく大きなテーブルを作ってインデックスを使用したSELECTとそうでないSELECTを投げてperfで調査しました…

Node.jsでサーバ間通信

Node.jsのAPI内で別サーバへ問い合わせてその内容をejsへ渡すということをやってみました。リアルタイム性を持たせたいからNode.js/websocketなんだけども、処理全部をjsで書くのはなーという考えからきてます。 var options = { host : 'localhost', // ポ…

apache-passengerで動かすsinatra環境のよさげな設定

自宅サーバでsinatraアプリを動かすことにしたので、既存のslimアプリとバッティングしない設定を試した時のメモです。/var/www/slimにslimアプリがあるとします。slimアプリもsinatraアプリもhttp://www.hoge.jp/slim/ http://www.hoge.jp/sinatra/のような…