社内Gyazoの画像をAmazon S3に逃がしてスケーラブルに運用する

Gyazo、便利ですよね。大変便利なので、社内でプライベートなGyazoサーバを用意して使っている会社も多いと思います。うちでもサーバのパフォーマンスは特に必要ないので社内に適当なVMを立てて運用していたのですが、数年単位で運用していると画像ファイル…

ISUCON3 チームごとのベンチマーク試行回数

すっかりISUCONのことも忘れかけたある日曜日のこと… @fujiwara ISUCON3のチーム毎のベンチ回数が公開されてないと思うんですが!2013-12-08 02:09:12 via Twitter for iPhone to @fujiwara そういえば公開していませんでしたので公開します。success, fail,…

ISUCON3 を開催しました

参加者の皆様、共催で運営となった LINE, DataHotel, カヤック各社の皆様、本当にありがとうございました。いくつかトラブルがあったものの、本選もなんとか無事に終えることができました。まずは優勝した LINE 選抜チームの皆様、おめでとうございます!な…

ISUCON3 予選を開催しました

出題担当なのですが正式名称が ISUCON3 なのか ISUCON 2013 なのか未だによく分かってない今日この頃です。それはともかくとして、200名以上の皆様に参加していただいて ISUCON の予選を盛況のうちになんとか終えることができました。 スコアの算出方法が公…

YAPC::Asia 2013 で「社内ISUCONのつくりかた」を発表しました

blogを書くまでがYAPCということなので…YAPC::Asia 2013 にて「社内ISUCONのつくりかた」を発表しました。朝一の同時間帯に魅力的なトークがひしめくなか、聴きにきていただいた皆様ありがとうございます。毎回40分のトークで早口になるので今年はゆるふわに…

[perl] Perl徹底攻略という本が出ました

本日、7月23日発売です。Perl徹底攻略 (WEB+DB PRESS plus)作者: 大沢和宏,cho45(さとう),小林篤,和田裕介,嶋田裕二(xaicron),牧大輔(lestrrat),奥一穂,広木大地,伊藤直也,長野雅広,藤原俊一郎,伊藤智章,まかまか般若波羅蜜,小飼弾,近藤嘉雪,中川勝樹,宮川達…

nginxでメソッドごとにリクエスト数制限を掛けたい

アプリケーションでどうしても捌けない量のリクエストが一時的に押し寄せてしまう場合、アプリケーションサーバが死ぬのを避けるために GET は制限を掛けたいが、POST はリトライが面倒なのでなるべく通してあげたい、というような要求を nginx で処理できる…

chef-soloがcookbookから実行するscriptの無限ループで大量にメモリを食って死んだ件

とあるホストで初期設定をしようと思って chef-solo を実行していたところ、メモリを全部食い尽くして chef-solo (11.4.4) が死亡するという事案が発生。追ってみたところ、どうやら原因はこんなかんじ。 cookbook から shell script を実行していて、その中…

Provisioning Frameworks Casual Talks vol.1 で「新卒研修でserverspecとChefを使った話」を発表しました

主催の @studio3104 さん、登壇された方々、参加者の皆さんありがとうございました。 Provisioning Frameworks Casual Talks vol.1 にて、カヤックの今年の新卒研修でserverspecとChefを使った話、をしてきました。スライドはこちらこのblogには書いていなか…

MySQLでデータ領域をシステムと別diskにするならtmpdirも設定した方がいい

某所に300ホスト以上を2年ほど監視していたZabbixのMySQLがありまして、データが100GBぐらいになってメモリ8GBのホストではdisk IOが辛くなってきたので、移行することにしました。普段はそんなにでもないのですが、housekeeperが動作して古いデータを消しに…

[perl] Perlで同じコードを違うバージョンのモジュールでベンチマークする

複数バージョンのモジュールで同じコードを実行してBenchmark.pmで計測したい、というケースにこう書けばいいかな、という例。普通にBenchmark.pmを使ってしまうと同一モジュールを違うバージョンで複数読み込むことができないため、 バージョンごとに子プロ…

monitoring casual talks #3 に参加してきました

2013年3月8日に開催された、monitoring casual talks #3に参加してきました。会場をご提供いただきました paperboy&co. 様と皆様には大変お世話になりました。ありがとうございます。自分の発表資料はこちらです。『いつもと違う』を検知したい普通異常値検…

ネットワークサーバじゃないプロセスでもServer::Starter経由で起動するといいことがあるかもという話

具体的には Redis の subscriber なんですが、pub/sub の pub 側が publish し続けている状態で subscriber を再起動すると、落ちてから起動までの間に来たメッセージを取りこぼす可能性があります。pub 側を一時停止すればいいのですが、fluent-plugin-redi…

MongoDBをNUMAなマシンで使うときの注意

デュアルCPUで計12コア24スレッド、メモリ48GBというマシンで MongoDB-2.0.8 をしばらく稼働させたところ、突然 CPU の system time が1コア分暴走したようになる、という現象が起きました。最初は原因がよく分からず、とりあえず mongod のプロセスを kill …

異常値検出プラグイン fluent-plugin-anomalydetect を使ってみたのでそろそろ閾値を決めたい

異常値検知、素敵な響きですね!fluent-plugin-anomalydetect 作りました - PolyPeaceLightあらかじめ固定値でアラートの条件を決めておかなくても、通常と異なる数値変化を検出してアラートできたら大変嬉しい、ということでインストールして一週間ほど運用…

RSS対応NICなのに割り込み処理が複数コアに分散しない…のはirqbalanceが動いてなかったから

タイトルがすべてでございます。NICの割り込み処理が1コアに集中してしまい、ボトルネックになって性能が出ない場合があるという話は最近広く知られていると思います。NICのハードウェアレベルで割り込みを分散してくれる RSS(Receive Side Scaling) という…

Redisでログの書き込みがblockを引き起こす

「RedisかわいいよRedis」(by typester)……というほど自分は Redis 期でもないのですが、最近 Redis を使ったサービスの面倒を見ていて時々レスポンスが悪化する現象に出会ったので調べました。 前提 使用しているのは Redis 2.4.16 です。redis.conf に "sav…

[fluentd] 同じメッセージを間引く fluent-plugin-suppress を書いた

fluentdで、なんらかの理由で大量に同じメッセージが送信されてきたときに、それを渡す output plugin によってはちょっと困ることがあります。たとえば out_mail を使うとメールが大量に飛んでしまう。ということで、同じ (指定したkeyの値を連結したものが…

#isucon2 で優勝してきました

なんでもありのいい感じにスピードアップコンテスト ISUCON が 2 になって帰ってきたので、参加して優勝を勝ち取ってきました。まとめ的なものはこちらから livedoor Techブログ : ISUCONチームメンバーのblogも併せてご覧ください。 おそらくはそれさえも平…

Zabbix-1.8で運用中のzabbix-serverを分散監視に切り替える場合の注意

実運用に使用している Zabbix-1.8 を、とある事情で途中から分散監視設定に変更しようかと思い立って調査したところ、気を付けないと危なそうなのでメモ。(zabbix-2.0以降はみていません)分散監視のドキュメントを参考に、 zabbix_server.confファイルに次の…

fluentdで複数箇所から同一のファイルに出力する

このエントリは「ウィークリーFluentdユースケースエントリリレー」への参加記事です。ウィークリーFluentdユースケースエントリリレーまとめ(現在12本まで。) - iをgに変えるとorangeになることに気づいたoranieの日記fluentd で一番手軽な出力 plugin と…

WEB+DB Press vol.71 に「Webアプリケーションのパフォーマンス改善」を寄稿しました #wdpress

本日10/24発売の技術評論社 WEB+DB Press vol.71、Perl Hackers Hubの連載に「Webアプリケーションのパフォーマンス改善」というタイトルで寄稿させていただきました。WEB+DB PRESS Vol.71作者: 竹迫良範,Jxck,はまちや2,相澤歩,柴田博志,池田尚史,梅澤雄一…

手軽に使える forward http proxy : stone, Tinyproxy

直接グローバルに繋がる経路をもたないホストから http アクセスしたいので http proxy を使いたい。Squidは定番ですが、もう少し手軽なのはなにかないかと思っていたところ twitter で教えていただきました。ありがとうございます。 reverseじゃなくてforwa…

MySQL 5.6のInnoDB memcached pluginを使ってみる

MySQL 5.6の RC 版が出ましたね。魅力的な機能が満載で皆さんwktkしていることと思います。早速、個人的に気になっていた memcached plugin を試してみました。最初に結論から言いますが、現時点 (5.6.7rc) では HandlerSocket の代わりに使えるようなもので…

YAPC::Asia 2012で「Webアプリケーションのベンチマークとプロファイリング」を発表しました

Perlのお祭りYAPC::Asia、今年もフルに参加して楽しんでいます。初日のLT前に「Webアプリケーションのベンチマークとプロファイリング」というタイトルで発表しました。発表資料はこちらです。 Webアプリケーションのベンチマークとプロファイリング今回の発…

zabbixでiptablesが有効になっているかどうかを検出する

iptables、便利ですが必要のないホストで有効になっていると困りますね。特に conntrack が適切に設定されていない状態で有効になると、流量が多くなった時にテーブルが溢れてパケットが捨てられてしまいます。厄介なことに、状態を確認しようと思って迂闊に…

RedisをKeepalivedでフェイルオーバーする構成案

master slave 構成を取っている Redis で、master が落ちた場合に slave を昇格させてフェイルオーバーしたいという要件がありまして、Keepalived と組み合わせて構成してみました。Redis の運用経験がないのでご意見などいただければありがたいです。 Scien…

ロードアベレージを監視して任意のコマンドを実行する(monitで)

他に似たツールがあれば教えて欲しいです ロードアベレージを監視して任意のコマンドを実行するコマンド - blog.nomadscafe.jp いままで使ったことはなかったのですが、monit でできるはず、と思って実験。一般的には、負荷が上がったりプロセスが応答しなく…

libvirt-0.9.10 にバージョンアップして 0.8.7 に戻したら起動しているVMが認識できなくて困った

Scientific Linux 6.0 で KVM + libvirtd で仮想環境を構築していて、libvirt-0.8.7-18.el6_1.1.x86_64 → libvirt-0.9.10-21.el6.x86_64 に update したところ、libvirtd が起動時に Segmentation falt するという現象に遭遇。 Caught Segmentation violatio…

chef-solo + capistrano で複数ホストを管理する

chef-server は仕組みが大げさでインストールも大変だし、10〜20台ぐらいなら chef-solo と capistrano を組み合わせればいいよね?(同案多数) Capistranoとchef-soloを組み合わせて使う | ひげろぐ capistrano + chef-soloで構成管理する - delirious tho…