タグ

ブックマーク / sfujiwara.hatenablog.com (47)

  • 「達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践」を執筆しました - 酒日記 はてな支店

    「達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践」というを6名の共著で執筆しました。技術評論社さんから、2022年6月4日発売予定です。電子版もでます。 gihyo.jp Amazon はこちら。 達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践 作者:藤原 俊一郎,馬場 俊彰,中西 建登,長野 雅広,金子 達哉,草野 翔技術評論社Amazon タイトルの通り、ISUCON で出題されるようなWebサービスを例にして、Webサービスのサーバーサイドパフォーマンスチューニングを指南する内容です。通称「ISUCON」と呼んでください。 2020年の末に、技術評論社さんからWebサービス高速化 × ISUCONに関する書籍を執筆しませんか、と藤原までお誘いをいただいたのが発端でした。 書きたい気持ちはあったものの、内容的にとて

    「達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践」を執筆しました - 酒日記 はてな支店
  • ISUCON11で優勝しました - 酒日記 はてな支店

    勝った!!引退!!! 取り乱しました。 ずっと参加してきているWebアプリケーションパフォーマンスチューニングコンテスト ISUCON、ISUCON11選にチーム「fujiwara組」で参加して、優勝しました。 ISUCON11 まとめ : ISUCON公式Blog fujiwara組は初回のISUCONから参加している老舗チームで、自分(fujiwara)以外のメンバーは都度入れ替わっているのですが、今回はISUCON10の時と同様に会社(面白法人カヤック)の同僚である acidlemon と macopy とのチームです。 チーム紹介スライド 過去に ISUCON1, 2, 5 で優勝しているので、6年ぶり4度目の優勝になりました。もう引退していいよね!(というか941さんに出禁って言われた気がする…) やったこと リポジトリはこちらです。 github.com アプリケーションの変

    ISUCON11で優勝しました - 酒日記 はてな支店
    sugyan
    sugyan 2021/09/21
    「おじさんチームでもまだまだ戦えることが示せてよかった」めちゃめちゃカッコいい
  • ISUCON11予選を4位で通過しました - 酒日記 はてな支店

    今年もやってきました ISUCON の季節です。 ISUCON は 8 までは(出題を含めて)予選選の全てに参加できていたのですが、9, 10 では連続で予選落ちしていました。10は予選であと1チーム上回れば、というところで及ばずでしたが、選には並行参加チームというオープン参加扱いで参加させてもらい、ひっそり全体の3位相当のスコアを出していたんですよね。なのでチームのポテンシャルとしてはまだまだいけるはず!ということで ISUCON 11 にも10と同様、同僚の @acidlemon と @mackee_w (macopy) と参戦しました。 結果、全体の4位のスコアで予選を通過できました! isucon.net やったこととか 使用したのは Go 実装です。ミドルウェアは特に変更せず、最後まで nginx + MariaDB のままでした。 3台のうち1台を MySQL(MariaD

    ISUCON11予選を4位で通過しました - 酒日記 はてな支店
  • AWS X-Ray による ISUCON8 本選問題の解析 - 酒日記 はてな支店

    ISUCON8 の選問題は、競技者がコントロールできない外部 API 呼び出しを多数含んだ出題内容でした。 講評では、 サービスの特性を適切に分析した上で、まとめるところはまとめたり、遅延させるところは遅延させるなど ……とさらっと書かれていますが、実際そんなことを短時間で分析することは可能なのかよ!という話題が競技後の懇親会でもあったので、それ AWS X-Ray でできるよ、というエントリをまとめておきたいと思います。 今回の解析は Perl 版の初期実装に対して行ったものですが、なぜ Perl かというと AWS の公式 SDK にない X-Ray 関連の CPAN モジュールを自分が書いているので、その宣伝も兼ねています。(blogエントリ書いてなかった) AWS::XRay Plack::Middleware::XRay Devel::KYTProf::Logger::XRay

    AWS X-Ray による ISUCON8 本選問題の解析 - 酒日記 はてな支店
  • ISUCON8 本選出題記 あるいはISUCONベンチマーカー負荷調整の歴史 - 酒日記 はてな支店

    ISUCON 8 の選出題を同僚の @ken39arg と担当しました。参加された皆様、運営にご協力して頂いたすべての関係者の方々にお礼申し上げます。 恒例の #isucon pic.twitter.com/iXAjgfgbeZ— fujiwara (@fujiwara) 2018年10月20日 問題についての講評は公式の ISUCON8 選問題の解説と講評 をご覧頂くとして、こちらでは今回、出題に導入された新要素である「シェア機能」について、どういう経緯で導入されたのか、裏話的なことを書いておきたいと思います。 「ベンチマークの負荷を自分で決めるのも、自動で際限なく負荷が上昇するのも実際のアプリケーションとは違うよね?」というところから思いついた機構なのですが、経緯についてはいろいろな前提と、歴史の理解が必要になります。結果的に長文になってしまいました。 ISUCONベンチマーカーと

    ISUCON8 本選出題記 あるいはISUCONベンチマーカー負荷調整の歴史 - 酒日記 はてな支店
    sugyan
    sugyan 2018/10/25
    こういう解決法を思い付けるのがすごい
  • maprobe - Mackerel のホスト情報と連携する外形監視エージェントを作った - 酒日記 はてな支店

    監視を Zabbix から Mackerel に移行しています。そこで困ったことを OSS を書いて解決しようシリーズのお時間です。 ホストのダウン検知を早くしたい Mackerel の監視は Push 型と呼ばれるもので、mackerel-agent が Mackerel サーバに対してメトリクスを送信する形態です。そのため、agent を稼働させているホストがダウンしたという事象は、「一定時間サーバに対して情報が送られてこない」ことによって、組み込みのアラート "connectivity" として検知されます。 これによって困ることとしては、以下があります。 ホストが実際にダウンしてから7分程度経過しないとアラートが上がらない あまり短時間で判断してしまうと誤検知が増えるからでしょうか もうちょっと早く検知したいです "connectivity" アラートは Critical レベルし

    maprobe - Mackerel のホスト情報と連携する外形監視エージェントを作った - 酒日記 はてな支店
  • fluent-logger-golang の実戦的な使いかたまとめ - 酒日記 はてな支店

    OSS紹介アドベントカレンダー の14日目の記事です。 Fluentd の 公式 GoLogger である fluent-logger-golang はこのように使うのがよさそう、という使い方をまとめてみました。 元々社内で書いておいたドキュメントを編集したものです。 github.com 前提のユースケース Webアプリケーション(APIサーバ) を Go で書いていて、そこから何らかのログを Fluentd に送信したい。 config のお勧めオプション Timeout : Connect に対するタイムアウト。デフォルト3秒なのでそのままでよさそう WriteTimeout : 書き込みのタイムアウト。デフォルトだとずっと待ってしまうので 3 秒とか? BufferLimit : デフォルト 8MB これを超えると捨てられてしまう。送る流量によって調整が必要 MaxRetry

    fluent-logger-golang の実戦的な使いかたまとめ - 酒日記 はてな支店
  • ISUCON 7 予選2日目を3位で通過しました - 酒日記 はてな支店

    まずは出題と運営チームの皆様にお礼を。予選から1チーム3台、合計1200台のサーバを用意するという空前の規模で、快適な競技環境を用意していただいてありがとうございました。 isucon.net 今回は ISUCON 4 の時の fujiwara組 (@fujiwara, @acidlemon, @handlename) を再結成して、自称社内最強チームで望むことに。1日目には同じくカヤックから参戦のチーム MSA が1位を取っていて、これは予選通過はもちろん、スコアでもできれば負けたくないという戦いでした。 最終的には 48万点越え、両日通してのスコアでも3位ということで、まずまずの結果が残せたと思います。 やったこと あらかじめ用意しておいた Chef recipe で各種ツールや各人のアカウント作成、公開鍵設定 さくらのクラウドで用意されている Ubuntu から使われるとすれば今回は

    ISUCON 7 予選2日目を3位で通過しました - 酒日記 はてな支店
  • YAPC::Fukuoka で分散 ID 採番機 katsubushi の話をしてきた - 酒日記 はてな支店

    初福岡ですが前日は熊に泊まって馬刺しをべました。今までべてきた馬刺しとはなんだったのか。 合法レバ刺しです 🐴なので pic.twitter.com/v2t7y6pI01— fujiwara (@fujiwara) 2017年6月30日 発表資料はこちらです。 speakerdeck.com github.com 開発してから2年、番で使いまくっていますが大変安定してますし、いろいろ面白い使い方ができる特性を持っているので、是非お試しください。(rausサポートした版はまだ番に入れてないですが、今後数ヶ月のうちに入れる予定です)

    YAPC::Fukuoka で分散 ID 採番機 katsubushi の話をしてきた - 酒日記 はてな支店
    sugyan
    sugyan 2017/07/01
    馬刺し美味しそう…
  • ISUCON6で準優勝でした - 酒日記 はてな支店

    ISUCON 6 にチーム「morimoto組」で参加して、最終スコア 36,067 で準優勝しました。 morimoto組は自分と、会社の新卒1,2年目( kasari , id:moshisora ) という歳の差チームです。 今年も作りました #isucon pic.twitter.com/y2fX4HiJys— fujiwara (@fujiwara) October 22, 2016 お題 匿名お絵かきサービス ログイン、セッション管理などはない SSE (Server Sent Events) で他のユーザの書き込みがストリーミングで流れてくる 一番前に React のサーバサイドレンダリングをする node のプロセスがいる react, 各言語実装のアプリケーションサーバ, MySQL はすべて Docker で起動している やー、盛りだくさんでしたね… スコア推移とやった

    ISUCON6で準優勝でした - 酒日記 はてな支店
  • ISUCON5 で優勝しました - 酒日記 はてな支店

    ISUCON5、予選を無事通過して10/31(土)に開催された選に参加し、優勝しました。 チームは ISUCON 1 の時の初代「fujiwara組」再結成ということで、@songmu, @sugyan とのカヤックの元同僚メンバーです。 最初に、毎回素晴らしいイベントを開催、運営していただいている @941 さんをはじめとした運営チームの皆様、出題の @tagomoris さん、@kamipo さん、他すべての協力いただいた皆様に感謝を申し上げます。当にありがとうございました! 競技開始からベンチ実行まで 作った #isucon pic.twitter.com/5RZkPUsaPu— fujiwara (@fujiwara) 2015, 10月 31 ロゴがなかったので作った。 競技開始、まずは3台で相互にsshできるようにするのに一瞬戸惑う。port 22は開いていて、会場からは接

    ISUCON5 で優勝しました - 酒日記 はてな支店
    sugyan
    sugyan 2015/11/02
    優勝!!
  • ISUCON5予選を全体1位で通過しました - 酒日記 はてな支店

    ISUCON5 の予選1日目にチーム「fujiwara組」(@fujiwara, @songmu, @sugyan) として参加して、全体通して1位のスコアで通過しました。 isucon.net 今回は ISUCON 1 の時の優勝チームを再結成という形になったわけですが、最初はISUCON 4の時と同じ社内のチームででようかと思ってたんですよね。ところが昨年優勝チームだった「LINE選抜 生ハム原木」が今回参戦できないということで、sugyanがチームどうしよう、と困っていたのでつい…*1 初代fujiwara組を再結成しよう— fujiwara (@fujiwara) 2015, 5月 27 準備 今回はOSは Ubuntu(バージョン非公開)なのが事前にレギュレーションで公開されていたので(前年まではCentOS, Amazon LinuxなどのRedHat系ディストリビューションで

    ISUCON5予選を全体1位で通過しました - 酒日記 はてな支店
    sugyan
    sugyan 2015/09/28
    SSDインスタンスを使ったALTER、Redisの初期データセット作戦、サクっとやってしまうのホントすごかったです。ありがとうございました!
  • ISUCON4本選で3位に敗れました #isucon - 酒日記 はてな支店

    ISUCON4 に「fujiwara組」として参戦しましたが、既報のとおり 3位に敗れてきました。順位こそ3位で賞金10万円は獲得できたものの、スコアが示すとおり内容的には完敗です。 まずは主催のLINE社様、出題を担当していただいたCookpad社様、番サーバ提供をしていただいたテコラス社様にお礼申し上げます。当に楽しいイベントをありがとうございました。 うちのチームとしてやったことは #isucon 4の戦で3位を取ってきました (追記あり) - beatsync.net に大変詳しいので、そちらをご参照ください。 簡単に最終的な構成をまとめると Redisは1号機に(動画以外)集約 動画はアップロードを受けたサーバがローカルファイルとして保存しnginxが返す。保存されたサーバのアドレスをメタデータとしてRedisに保存し、APIへのレスポンスに含まれるURLを構築するのに使用

    ISUCON4本選で3位に敗れました #isucon - 酒日記 はてな支店
  • #isucon 4に参加して予選2日目暫定1位になりました - 酒日記 はてな支店

    ISUCON1, 2と「fujiwara組」で連覇し、2013年には出題を担当しましたが、今年は一参戦者として挑戦することになりました。 今年は弊社からの選枠もなく(共催ではないので)、予選落ちしたらそれまで チームは ISUCON 1,2のメンバーが自分以外全員退職(…) してしまったため、去年の出題担当 @acidlemn @handlename で新規編成 というなかなかプレッシャーのかかる状況でしたが、さしあたり予選2日目の暫定1位スコアを出すことができました。(後述しますが、一部レギュレーションに引っかかる可能性のある修正をしているため、失格となる可能性はあります。その判断が下された場合は、当然受け入れます) 速報結果はこちらです ISUCON4 オンライン予選 二日目の結果発表 : ISUCON公式Blog 例年のことながら、大変楽しいイベントでした。運営・出題をしていただい

    #isucon 4に参加して予選2日目暫定1位になりました - 酒日記 はてな支店
  • Goで並列実行のベンチマークを取るためのライブラリ parallel-benchmark を書いた - 酒日記 はてな支店

    以前 Perl で、forkして並列実行するベンチマークを取るためのライブラリ、Parallel::Benchmark というのを書きました。 Parallel::Benchmark というモジュールを書きました - 酒日記 はてな支店 これを使うと、単に Perl コードのベンチマークだけではなく、並列に外部にアクセスして計測を行うような (たとえばApacheBenchのような) ベンチマークツールが簡単に作れるので重宝しています。(仕事では、ソーシャルゲームのサーバアプリケーションに対する負荷テストを行うために使ったりもしています) で、思い立って Go 版を書きました。 kayac/parallel-benchmark · GitHub 使用例 フィボナッチ数を求めるコードを並列実行するベンチマーク fib(30) を1回計算するごとにスコア1とする 10個の goroutine

    Goで並列実行のベンチマークを取るためのライブラリ parallel-benchmark を書いた - 酒日記 はてな支店
  • 社内Gyazoの画像をAmazon S3に逃がしてスケーラブルに運用する - 酒日記 はてな支店

    Gyazo、便利ですよね。大変便利なので、社内でプライベートなGyazoサーバを用意して使っている会社も多いと思います。 うちでもサーバのパフォーマンスは特に必要ないので社内に適当なVMを立てて運用していたのですが、数年単位で運用していると画像ファイルが増えていくためdiskをなんとかする必要に迫られました。 ここでどんどん増えるファイルはAmazon S3に逃がそう、という自然な発想に至るわけですが、Gyazoサーバアプリが投稿を受けたときにS3にアップロードするような改修をするのは年末の忙しい時期に面倒。楽したい。 ということで S3 と nginx を組み合わせていいかんじに運用できるようにしてみました。 Gyazoに限らず、 ローカルに書き込んだファイルをhttpで閲覧する 一度書き込まれたファイルには変更がない ファイルは消えないでどんどん増える ようなものには応用できると思いま

    社内Gyazoの画像をAmazon S3に逃がしてスケーラブルに運用する - 酒日記 はてな支店
  • ISUCON3 を開催しました - 酒日記 はてな支店

    参加者の皆様、共催で運営となった LINE, DataHotel, カヤック各社の皆様、当にありがとうございました。いくつかトラブルがあったものの、選もなんとか無事に終えることができました。 まずは優勝した LINE 選抜チームの皆様、おめでとうございます!なかなか初期スコアから上がってこないので内心ものすごく心配していましたが、ポイントを見極めて作業が終わったところで一気にスコアを上げてきたのは感服しました。 選終了から48時間経過したいまでも頭の疲労が回復しきっていない感じで、整理できていないので思うままにつらつら書きます。 以下長文になってしまうので最初に告知です。 ISUCON3反省会 というイベントを 11/15(金) に行います。ISUCON参加者でなくてもどなたでも無料でプレミアムモルツ飲み放題ですので、日時が迫っていますが是非お越しください。 出題内容について お題は

    ISUCON3 を開催しました - 酒日記 はてな支店
    sugyan
    sugyan 2013/11/12
    おつかれさまでした、ありがとうございました!!
  • ISUCON3 予選を開催しました - 酒日記 はてな支店

    出題担当なのですが正式名称が ISUCON3 なのか ISUCON 2013 なのか未だによく分かってない今日この頃です。 それはともかくとして、200名以上の皆様に参加していただいて ISUCON の予選を盛況のうちになんとか終えることができました。 スコアの算出方法が公表されていなかったり 基的に静的ファイル以外の1リクエストが1点 (ただしPOST→リダイレクト→GETは1点)、静的ファイルは0.02点、css扱いで で読まれるのは 0点、でした Failについては合計3まで減点なし、それ以上は (Fails - 3)^2 * % を減点するので合計 Fails 13 で (10*10)% = 100% 減点でスコア0になります 想定していない /recent/* 荒稼ぎポイントがあったり 初日の競技中に気がついて、何チームぐらいここで稼いでくるかと思いましたがやはり60チーム以上

    sugyan
    sugyan 2013/10/10
    おつかれさまでした、ありがとうございました。本選もまたよろしくお願いします。
  • Redisでログの書き込みがblockを引き起こす - 酒日記 はてな支店

    「RedisかわいいよRedis」(by typester)……というほど自分は Redis 期でもないのですが、最近 Redis を使ったサービスの面倒を見ていて時々レスポンスが悪化する現象に出会ったので調べました。 前提 使用しているのは Redis 2.4.16 です。 redis.conf に "save [t] [n]" を定義すると、最後に save をしてから [t]秒間に [n]個以上の key が更新された場合に background で save (=bgsave) が実行されます。 save 60 10000これだと、60秒間に 10,000 keys です。 bgsave では redisは自分自身のプロセスを fork() し、子プロセス側は自分のメモリに乗っている内容をファイルにすべて書き出します。 この仕組みによって、1プロセス 1スレッドで動作している re

    Redisでログの書き込みがblockを引き起こす - 酒日記 はてな支店
    sugyan
    sugyan 2012/12/05
  • #isucon2 で優勝してきました - 酒日記 はてな支店

    なんでもありのいい感じにスピードアップコンテスト ISUCON が 2 になって帰ってきたので、参加して優勝を勝ち取ってきました。 まとめ的なものはこちらから livedoor Techブログ : ISUCON チームメンバーのblogも併せてご覧ください。 おそらくはそれさえも平凡な日々: #isucon2 で連覇させてもらってきました Redis布教活動報告 ISUCON 編 - unknownplace.org 今回は前回の ISUCON 優勝メンバーのひとり @sugyan が転職して出題側に回ってしまったので、@typester を招聘してチーム編成。@songmu と共に3人でチーム「fujiwara組」として再参戦です。 以下、作業用IRCのログからふりかえりますと…… 11:39:29 <typester> とりあえずrecent_soldはキャッシュってのはまずやることか

    #isucon2 で優勝してきました - 酒日記 はてな支店
    sugyan
    sugyan 2012/11/04
    本当にすごい。優勝おめでとうございます!