タグ

ブックマーク / matsuu.hatenablog.com (13)

  • ISUCON13にチーム「ウー馬場ーイー222」で参加して最終スコアは 49,344 でした - Gマイナー志向

    TL;DR 2023年11月25日に開催されたISUCON13に参加しました。最終スコアは49,344でした。実装言語はGoです。今回のチーム名の由来は申し込み時のチームIDが222だったためです。 追記:30位でギリギリTOP30チームに入りました。やったね。 今回スコアが思ったほど奮わなかったのですが、敗因はN+1を甘く見ていたことだと思っています。MySQLのスロークエリーログ(トータル実行時間順)を見ているだけではだめで、実行回数をもっと重視する必要があるなと思いました。うん、そうだね。 今回はDNSが課題に組み込まれており、インフラエンジニア3人態勢の我々のチームの得意分野とする領域のはずだったのですが、DBのボトルネックを解消できずDNS周りに着手できませんでした。くやしー。 運営の皆様、ことしもよい問題をありがとうございました。来年こそはリベンジして上位入賞を目指したいと思い

    ISUCON13にチーム「ウー馬場ーイー222」で参加して最終スコアは 49,344 でした - Gマイナー志向
  • SQL50本ノックをSQLite3 Fiddleで試す - Gマイナー志向

    Software Design「データベース速攻入門」に「SQL50ノック」が掲載されました - LIVESENSE ENGINEER BLOG 最近では、postgres-wasmなど、WebブラウザでDBを動かせるようになってきており、もう少しすれば、WebAssemblyを使って、ブラウザですぐにノックを始められるようになるかもしれません。もしも、また何年か後に記事を更新する機会があれば、試してみたいですね。 Web上からすぐに試せるpostgres-wasmはPagilaのデータを持っていくことが現時点で出来なさそうだったものの、SQLite3 WebAssemblySQLiteのデータを持っていけました。SQL50ノックを気軽に試せそうです。 手順1 sakila-sqlite3をダウンロード まずgithubからsakila-sqlite3をダウンロードします。 gith

    SQL50本ノックをSQLite3 Fiddleで試す - Gマイナー志向
  • ISUCON12予選の様子(画面操作)をYouTubeに公開しました - Gマイナー志向

    今回のISUCONで初の試みとして、画面操作を録画したのでYouTubeに公開しました。自分の肉声も含まれています。 youtu.be 映像は8時間ノーカットです。音声は乗せられない会話、クシャミ、昼中の啜る音などだけ除去しています。 チームメンバーと会話しながら進めたものの、プライバシーを配慮してあえて自分の声しか入れてません。相槌を打っているだけのシーンもあるので内容はすべて把握できないかもしれません。 画面収録はmacOS標準機能を使いました。動画編集はmacOS標準のiMovieを使っています。 ちゃんとした動画をYouTubeにアップロードしたのも初めてだったので不手際があれば教えてください。 得られた教訓 黒地に白文字は動画にすると読みづらいので白地に黒文字にすべきだった 更新があまりないターミナルの画面(1920x1080)を8時間録画すると約20GBの動画ファイルになる

    ISUCON12予選の様子(画面操作)をYouTubeに公開しました - Gマイナー志向
  • ISUCON12本選でチーム シン・ウー馬場ーイー2 として参加し、12位でした - Gマイナー志向

    TL;DR ISUCON12選の結果は12位となりました。最終スコアは106,254でした。 順位が振るわなかった理由は、以下の3点と自分では考えています。 デッドロックの解消に時間を使い過ぎてしまった デッドロックが発生しているテーブル特定に時間がかかった デッドロックはテーブルの更新順が原因と思い込んでしまった 選の時間内にデッドロックを解決できなかった 複数台サーバの利用方法を最終盤まで後回しにした 5台もあるので分割方法を早々に考えるべきであった 結局2台しか活用できなかった シャーディングの発想がでてこなかった シャーディングを自分で実装した経験がなかった 仮に思いついたとしても作業コストが想定できなかった デッドロックは延長戦で解消する方法をある程度確立したので、今後のISUCONに活かしたいと思います。 シャーディングは1度でも経験しておけば着手できたのではないかと思いま

    ISUCON12本選でチーム シン・ウー馬場ーイー2 として参加し、12位でした - Gマイナー志向
  • ISUCON12予選にシン・ウー馬場ーイー2として参加し、2位で予選突破しました - Gマイナー志向

    TL;DR ISUCON12予選にシン・ウー馬場ーイー2 として出場しました。 結果、予選2位で選出場をきめました。やったね。 最終スコアは75800、予選中のベストスコアは76525でした。選もがんばるぞ! 毎年素晴らしいコンテストを開催してくださる運営様には感謝しかありません。当にありがとうございます!!1 体制 あいこん なまえ やくわり ペアプロ matsuu バリバリ実装する前衛 ドライバー netmarkjp 司令塔+ベンチ実行+結果解析 ナビゲーター ishikawa84g セキュリティ+情報官+動作確認 AppArmor、マニュアルや公式アナウンスの把握、ブラウザでの挙動確認 ナビゲーター 今年も3人が別々の場所からリモート参加です。 コミュニケーションはDiscordを使ってます。3人それぞれの画面を共有しながら音声チャットつなぎっぱなしです。 手元の環境 どうでも

    ISUCON12予選にシン・ウー馬場ーイー2として参加し、2位で予選突破しました - Gマイナー志向
  • 書籍「達人が教えるWebパフォーマンスチューニング」はチューニングの考え方を教えてくれる良本 - Gマイナー志向

    通称 #ISUCON を著者様からご恵贈いただきました。ありがとうございます。 gihyo.jp 所感 この書籍、言っていいのかわかりませんがまったくの初心者・初学者には難しいかもしれません。私の感触では、Webサイトのプログラム作成、改修、構築、運用などに携わったり、Webサイトのパフォーマンスの問題に向き合ったことがある人が対象読者だと思いました。職種でいえばバックエンドエンジニアインフラエンジニア、SREなどですね。もちろんそういった職種を目指している方や、純粋にISUCONに挑戦したい、パフォーマンスチューニングに興味がある、といった方も含まれます。 このは特定の問題に対する直接的な答えではなく、パフォーマンスチューニングの考え方を教えてくれる内容になっています。このを参考に実際に手を動かして実践するのが良いでしょう。現実のWebサイトをチューニングするでもいいですし、そ

    書籍「達人が教えるWebパフォーマンスチューニング」はチューニングの考え方を教えてくれる良本 - Gマイナー志向
  • ISUCON11本選でチーム ウー馬場ーイー2 として参加し、7位になりました - Gマイナー志向

    TL;DR 運営の皆様、参加者の皆様、当にありがとうございました。ISUCONと嫁は私の生きがいです。 優勝までは届きませんでしたが、Failで終わったISUCON10選から少し人権を取り戻した気がします。 スコアについて 選時間中のベストスコアは80,473、再計測による最終スコアは83,756、7位でした。 来は12位ぐらいので実力でしたがFailとなったチームがいたので運良く10位以内に入れたようです。 今回、途中で急激なスコアの伸びたことが理由でTVer賞をいただいたのですが、スコアが伸びたのは開始から3時間44分後の1台構成から2台構成に切り替えたタイミングでした。最初しばらくは1台構成で進めて、煮詰まったら複数台構成としているので、予め複数台構成にするよりも大きく伸びやすいというのがあると思います。そのようなスコア評価があることは事前に知らなかったのでラッキーでしたね。

    ISUCON11本選でチーム ウー馬場ーイー2 として参加し、7位になりました - Gマイナー志向
  • ISUCON11予選でチーム ウー馬場ーイー2 として参加し、本選進出を決めました - Gマイナー志向

    TL;DR ISUCON11予選にチーム ウー馬場ーイー2 として出場しました。 上位25チームに残り選進出が決まりました。やったね。 最終スコアは389509で8位、予選中のベストスコアは394682でした。選もがんばるぞ! 毎年素晴らしいコンテストを開催してくださる運営様には感謝しかありません。当にありがとうございます!!1 体制 あいこん なまえ やくわり matsuu バリバリ実装する前衛 netmarkjp 司令塔 ishikawa84g SELinuxAppArmorとマニュアルやコードやDiscordを見るセキュリティ&情報官 3人がそれぞれ別々の場所にいたのでリモート接続しながら挑みました。 画面共有は VDO.ninjaの Remote Screenshare into OBS で生成されたURLを直接相互参照しました。遅延なく解像度も高くて最高。 音声と文字チャッ

    ISUCON11予選でチーム ウー馬場ーイー2 として参加し、本選進出を決めました - Gマイナー志向
  • ISUCON10本選に出場し17:00時点ではベストスコア1位だったもののfailフィニッシュになりました - Gマイナー志向

    TL;DR ISUCON10選に出場し、17:00時点でベストスコア1位につけるも最終的にはfailフィニッシュとなった(と思われる)matsuuです、こんにちは。 体制(予選から再掲) チーム名 ウー馬場ーイーツ あいこん なまえ やくわり matsuu バリバリ実装する前衛 netmarkjp 司令塔 ishikawa84g SELinuxAppArmorとレギュレーションやコードやDiscordを見るセキュリティ&情報官 選も同じくそれぞれの場所からリモート体制です。 方針 基的に予選を踏襲してsshrc+tmux+vim(or nvim)です。 gitについてはファイルシステムのルートで git init を実行し、.gitignoreで /home と /etc を記録するようにしました。このあたりはまだ改善余地があったので来年に向けて改善を続けます。 解析ツール 予選と同

    ISUCON10本選に出場し17:00時点ではベストスコア1位だったもののfailフィニッシュになりました - Gマイナー志向
  • ISUCON10予選で12位になり本選進出を決めました - Gマイナー志向

    TL;DR ISUCON10の選出場が決定しました。わいわい。 予選12位、最終スコアは2837でした。 毎年素晴らしいコンテストを開催してくださる運営様には、当に頭が下がります。いつもありがとうございます。 選もがんばるぞ! 体制 チーム名 ウー馬場ーイーツ あいこん なまえ やくわり matsuu バリバリ実装する前衛 netmarkjp 司令塔 ishikawa84g SELinuxAppArmorとレギュレーションやコードやDiscordを見るセキュリティ&情報官 今回は3人が同じ場所に集まらずすべてリモート体制としました。 3人だけのDiscordサーバを用意し、Discord上で画面共有と音声チャットで進めています。 方針 毎年同じですが sshで接続してtmux上でvimで直接編集 isuumo配下でgit initを実行するが履歴保存用でbranchは作成しない 毎年

    ISUCON10予選で12位になり本選進出を決めました - Gマイナー志向
  • ISUCON9本選を11位でフィニッシュしました - Gマイナー志向

    ISUCON9選に「いんふらえんじにあー as Code」として参加し、11位でフィニッシュしました。悔しい。 最高スコアは9107、運営確認の最終スコアは8995でした。 メンバー紹介 チーム名 いんふらえんじにあー as Code あいこん なまえ やくわり matsuu バリバリ実装する前衛 netmarkjp 司令塔 ishikawa84g レギュレーションやコードやログやDiscordを見る情報官 構成 初期はこんな感じですが 1台目 nginx --- go(docker) --- mysql(docker) 2台目 同上 3台目 同上 最終構成はこうなりました。 1台目 nginx --- go --- mysql(docker) 2台目 利用せず 3台目 利用せず godockerから剥がしただけ、中途半端にmysqldockerに残したままとなりました。 このような

    ISUCON9本選を11位でフィニッシュしました - Gマイナー志向
  • ISUCON9予選で総合4位になり本選進出を決めました - Gマイナー志向

    ISUCON9予選1日目に「いんふらえんじにあー as Code」として参加し、1日目に3位(1位が棄権したため2位)で予選通過を勝ち取りました。 予選通過はISUCON4以来、5年ぶりです。なお、総合順位は4位だった模様です。 メンバー紹介 チーム名 いんふらえんじにあー as Code あいこん なまえ やくわり netmarkjp 司令塔 ishikawa84g レギュレーションやコードやログやDiscordを見る情報官 matsuu バリバリ実装する前衛 最終構成 nginx --+-- app(go) --+-- mysql 1台目 | | +-- app(go) --+ 2台目 | | +-- app(go) --+ 3台目 2台目と3台目は /login のアクセスのみ振り分け(bcryptのハッシュ処理のため) nginxmysqlは初期バージョンのまま変更せず スコアの

    ISUCON9予選で総合4位になり本選進出を決めました - Gマイナー志向
  • AtCoderとHighLoad Cupによるスキルアップ術 - ISUCON予選突破を目指して - Gマイナー志向

    こんにちは、ISUCON駆動のmatsuuです。 第1回ISUCONではそこそこ良い順位につけたものの、その後下降の一途をたどりここ数年に至っては予選を突破できてない現実。 この現実を省みて今の自分に足りないものは何かと考えた結果、以下の結論に至った次第。 プログラミングの実装速度が遅い メインの開発言語としているGo言語力が弱い 今の職業はインフラエンジニアなこともあってちょっとしたプログラムを組むことはあってもGo言語をがっつり扱うのはほぼISUCONだけという状態。これはいかんね。 上記2つを改善すべく、2019年からAtCoderとHighLoad Cupを始めてみた。 AtCoder 言わずと知れた競技プログラミング。昔はGo言語に対応していなかったらしいが今は使える*1。 競技として早く解くためにはよくある操作(標準入力処理や文字列変換など)をスニペットとして保存しておくのが良

    AtCoderとHighLoad Cupによるスキルアップ術 - ISUCON予選突破を目指して - Gマイナー志向
  • 1