タグ

ブックマーク / ijin.github.io (5)

  • ISUCON5の予選に記念参加してきた - @ijin

    とあるエンジニアが言い放ちました。 「上位に届かないチームはただの記念参加だよねー。」 というわけで、今年のISUCONは見事に予選落ちしました。 お題 「ISUxi」というどこか懐かしい響きの「高負荷に耐えられるSNSコミュニティサイト」 友達、記事、コメント、足あと機能が揃っており、以前より複雑度が増したなかなかの凝った作り。 起こったこと これはESIによるpartial cachingが出来るので、Varnishでやってみよう! と意気込んだものの、エラーが解決できず結局は間に合わずに終了ーーっ。 やりたかったこと Varnish + ESI + Redis & MySQL やれたこと 具体的な作業内容は今手元にないので、ぼんやりと。 MySQLのクエリー修正、パラメータ、Indexの追加 nginxのパラメータ追加 kernelのパラメータ追加 一部 redis化 rubyプロセ

  • ConsulによるMySQLフェールオーバー - @ijin

    先日(6/22/14)、6月なのにどういう分けか早めに開催されたJuly Tech Festa 2014でConsulについて発表してきた。そのユースケースの一つとしてMySQL failoverをちょっとだけ紹介したので、ここに詳しく書いておく。 MHA MySQLレプリケーションの障害時にフェールオーバーしたい場合、MHAを使うの結構ポピュラー(日では)だと思います。MHAは最新binlogの適用、Slaveの昇格とレプリケーションの張替えまではやってくれますが、実際のフェールオーバーの部分はユーザに委ねられていて、master_ip_failover_scriptのテンプレートをカスタマイズするか独自実装する必要があり、一般的な実現方法としてはカタログデータベースの更新かVirtual IPの切替等があります。 Virtual IPだと居残りセッションの問題や切替の保証難しかったり

  • ISUCON4の予選を通過したんだった - @ijin

    そういえば、3回目の参加となるISUCONの第4回目の予選を通過してました。 結果は185チーム中、19位というなんと微妙な結果で戦にいける事に。 事前準備 今年も@cadsと@fruweでお馴染みのメンバーで「Mr. Frank & Co: A New Hope」として登録。 前日までこんな感じの打ち合わせや予習を実地。 選択言語はruby 効率化・自動化の為にansible playbookを用意 ssh keys dotfiles rubyの複数バージョン 各種ミドルウェア sidekiq等のバックグラウンドワーカーやキャッシュ周りの仮組み redisの復習 去年やったエントリを読む 当日の流れの確認 コミュニケーションツールとして最近仕事で活躍してるSlackを導入 役割としては他の二人がコード実装に集中できるように、私がインフラ周り、コードレビュー、ファシリテーターを務める。

  • ISUCON3の予選を通過した(はず) - @ijin

    去年に引き続き参加したISUCON第3回目の予選を通過しました。 結果は参戦1日目の方で4位。 74チーム中、総合6位になりました。 事前準備 再び@cadsと@fruweに声をかけ、去年3位という雪辱を果たすべく、「The Revenge of Mr. Frank & Co.」とチーム名を改名。 今年はチーム数が膨れると予想されてたので去年と違って予選がありトップ20位ぐらいまでしか戦に行けないという仕組み。方針は以下の通り。 言語は我々の得意なrubygoも面白そうだったけど)で勝負 去年Railsの再実装で失敗した為、Sinatra(であれば)でやりきる Sinatra、Varnish、Sidekiq、Redisの復習 計測ツールの導入 早い時期に全体のスケジュールを決定する 戦略転換の見極め 特に去年の敗因が戦略転換の遅れだったので、それを意識するようにしました。 お題発表 M

  • ISUCON3の本戦に参加してきた - @ijin

    先月の予選に通過したので、ISUCON3の戦に参加してきました。 完敗。 お題発表 画像版twitter。投稿する画像の公開レベルをpublic, private, followers onlyに設定できるシステムが1台のVPS(2コア、4GB RAM)で動いている状態。プレスを打った為、大量アクセスがくる18時までに別途用意された4台のサーバを使ってスケールせよという使命を与えられる。 流れ 画像データが1万点・約3GBあったので、まず失敗しても戻れるようにバックアップ取得を開始。それと平行して他のサーバへのsshキー登録したり、hosts書いたり、もろもろ下準備。 デフォルトのperlのスコアは1206.8 言語はrubyと決めていたので、supervisorで立ち上げてみるが起動失敗。よくよく調べてみるとforemanが入ってなくてGemfileに追加してbundle。 この時のス

  • 1