summaryrefslogtreecommitdiffhomepage
path: root/vhosts
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2023-12-03 00:49:05 +0900
committernsfisis <nsfisis@gmail.com>2023-12-03 00:49:05 +0900
commite0422d762ba2dbf09ee94b878441b3128230a7f3 (patch)
tree079b5a0026bc5882dd039bff914124e44df795f3 /vhosts
parent6839a7b4b57d5fc638e0995dc648a295e9fb8a61 (diff)
downloadnsfisis.dev-e0422d762ba2dbf09ee94b878441b3128230a7f3.tar.gz
nsfisis.dev-e0422d762ba2dbf09ee94b878441b3128230a7f3.tar.zst
nsfisis.dev-e0422d762ba2dbf09ee94b878441b3128230a7f3.zip
feat(blog/content): new post /posts/2023-12-03/isucon-13/
Diffstat (limited to 'vhosts')
-rw-r--r--vhosts/blog/content/posts/2023-12-03/isucon-13.ndoc91
-rw-r--r--vhosts/blog/public/posts/2023-12-03/isucon-13/index.html159
-rw-r--r--vhosts/blog/public/posts/index.html15
-rw-r--r--vhosts/blog/public/tags/index.html10
-rw-r--r--vhosts/blog/public/tags/isucon/index.html65
5 files changed, 340 insertions, 0 deletions
diff --git a/vhosts/blog/content/posts/2023-12-03/isucon-13.ndoc b/vhosts/blog/content/posts/2023-12-03/isucon-13.ndoc
new file mode 100644
index 00000000..125825a9
--- /dev/null
+++ b/vhosts/blog/content/posts/2023-12-03/isucon-13.ndoc
@@ -0,0 +1,91 @@
+---
+[article]
+title = "ISUCON 13 に参加した"
+description = "ISUCON 13 に参加した。チーム名「うつしもゆ」、最終スコア 13,580 点"
+tags = [
+ "isucon",
+]
+
+[[article.revisions]]
+date = "2023-12-03"
+remark = "公開"
+---
+<article>
+ <section id="intro">
+ <h>はじめに</h>
+ <p>
+ 先日 11月25日、<a href="https://isucon.net/archives/57801192.html">ISUCON 13</a> に参加した。
+ ISUCON への参加は今回が初めてとなる。
+ 私 nsfisis の1人チーム「うつしもゆ」として参加し、最終スコアは 13,580 点だった。使用言語は Go。
+ </p>
+ <note>
+ 「ISUCON」は、LINEヤフー株式会社の商標または登録商標です。<a href="https://isucon.net/">ISUCON 公式サイトはこちら。</a>
+ </note>
+ </section>
+ <section id="goals">
+ <h>目標</h>
+ <p>
+ 今回は初参加ということもあり、目標を以下のように定めた。
+ </p>
+ <ul>
+ <li>
+ 正のスコアを取る
+ <ul>
+ <li>ISUCON ではサーバ動作の整合性がチェックされ、失敗するとスコア 0 となる</li>
+ </ul>
+ </li>
+ <li>
+ 速度改善以外に時間を浪費しない (= ハマらない)
+ <ul>
+ <li>プロビジョニング、デバッグ、ミドルウェアの設定方法の調査など、性能改善に寄与しない時間を最小限にする</li>
+ </ul>
+ </li>
+ </ul>
+ </section>
+ <section id="strategy">
+ <h>戦略</h>
+ <p>
+ ISUCON で高スコアを出す戦略については、戦闘力の高い方々が良質な記事を書いてくださっている。
+ ここでは、上述したような低い目標を達成するための戦略について書こうと思う。
+ </p>
+ <section id="strategy--do-not-destroy-environment">
+ <h>環境を破壊しない</h>
+ <p>
+ ミドルウェアの設定やアプリケーションコードなど、変更を加えるあらゆるものは、必ずバックアップを取るか Git で管理する。
+ 復旧不能になって環境ごと作り直すことだけは必ず避ける。
+ </p>
+ </section>
+ <section id="strategy--revert-changes-immediately">
+ <h>すぐに変更を取り消す</h>
+ <p>
+ それでも壊してしまったときは、即座に変更を取り消す。壊れた理由を調べることに固執しない。
+ </p>
+ </section>
+ <section id="strategy--do-small-deployment">
+ <h>小さくデプロイする</h>
+ <p>
+ 一度に複数の変更を加えず、可能な限り小さな単位でデプロイする。そしてその都度ベンチマークを走らせ、整合性チェックが通るかどうかを (当然速くなっているかどうかも) 確かめる。
+ </p>
+ </section>
+ <section id="strategy--use-familiar-tools">
+ <h>使い慣れた道具を使う</h>
+ <p>
+ 使用する言語、ミドルウェア、ツール類を、使い慣れたものに限定する。
+ 「このツールのオプションはほとんどそらで指定できる」と言えるようなものだけを使う。
+ 「自分では使ったことがないが ISUCON 強者がお勧めしていた」といった理由でツールを選定しない (もちろん、本番までに練習して習熟するという選択肢は存在する)。
+ </p>
+ </section>
+ </section>
+ <section id="performance-optimization">
+ <h>パフォーマンスの最適化</h>
+ <p>
+ もっと強い人の記事を参考にしてほしい。
+ </p>
+ </section>
+ <section id="outro">
+ <h>おわりに</h>
+ <p>
+ 事前の準備も含めて、大変楽しいイベントだった。次回があるなら是非また参加したい。その際は、順位やスコアを目標として立てられるようになりたいものである。
+ </p>
+ </section>
+</article>
diff --git a/vhosts/blog/public/posts/2023-12-03/isucon-13/index.html b/vhosts/blog/public/posts/2023-12-03/isucon-13/index.html
new file mode 100644
index 00000000..26f81732
--- /dev/null
+++ b/vhosts/blog/public/posts/2023-12-03/isucon-13/index.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang="ja-JP">
+ <head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="author" content="nsfisis">
+ <meta name="copyright" content="&copy; 2023 nsfisis">
+ <meta name="description" content="ISUCON 13 に参加した。チーム名「うつしもゆ」、最終スコア 13,580 点">
+ <meta name="keywords" content="ISUCON">
+ <meta property="og:type" content="article">
+ <meta property="og:title" content="ISUCON 13 に参加した | REPL: Rest-Eat-Program Loop">
+ <meta property="og:description" content="ISUCON 13 に参加した。チーム名「うつしもゆ」、最終スコア 13,580 点">
+ <meta property="og:site_name" content="REPL: Rest-Eat-Program Loop">
+ <meta property="og:locale" content="ja_JP">
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg">
+ <title>ISUCON 13 に参加した | REPL: Rest-Eat-Program Loop</title>
+ <link rel="stylesheet" href="/style.css?h=6d01887cbcc8b6de37137e241dfef108">
+ <link rel="stylesheet" href="/hl.css?h=340e65ffd5c17713efc9107c06304f7b">
+ </head>
+ <body class="single">
+ <header class="header">
+ <div class="site-logo">
+ <a href="/">REPL: Rest-Eat-Program Loop</a>
+ </div>
+ <nav class="nav">
+ <ul>
+ <li>
+ <a href="/about/">About</a>
+ </li>
+ <li>
+ <a href="/posts/">Posts</a>
+ </li>
+ <li>
+ <a href="/slides/">Slides</a>
+ </li>
+ <li>
+ <a href="/tags/">Tags</a>
+ </li>
+ </ul>
+ </nav>
+ </header>
+ <main class="main">
+ <article class="post-single">
+ <header class="post-header">
+ <h1 class="post-title">ISUCON 13 に参加した</h1>
+ <ul class="post-tags">
+ <li class="tag">
+ <a href="/tags/isucon/">ISUCON</a>
+ </li>
+ </ul>
+ </header>
+ <div class="post-content">
+ <section>
+ <h2 id="changelog">更新履歴</h2>
+ <ol>
+ <li class="revision">
+ <time datetime="2023-12-03">2023-12-03</time>: 公開
+ </li>
+ </ol>
+ </section>
+ <section id="section--intro">
+ <h2><a href="#section--intro">はじめに</a></h2>
+ <p>
+ 先日 11月25日、<a href="https://isucon.net/archives/57801192.html">ISUCON 13</a> に参加した。 ISUCON への参加は今回が初めてとなる。 私 nsfisis の1人チーム「うつしもゆ」として参加し、最終スコアは 13,580 点だった。使用言語は Go。
+ </p>
+
+ <div class="admonition">
+ <div class="admonition-label">
+ NOTE
+ </div>
+ <div class="admonition-content">
+ 「ISUCON」は、LINEヤフー株式会社の商標または登録商標です。<a href="https://isucon.net/">ISUCON 公式サイトはこちら。</a>
+ </div>
+ </div>
+ </section>
+
+ <section id="section--goals">
+ <h2><a href="#section--goals">目標</a></h2>
+ <p>
+ 今回は初参加ということもあり、目標を以下のように定めた。
+ </p>
+
+ <ul>
+ <li>
+ 正のスコアを取る
+ <ul>
+ <li>
+ ISUCON ではサーバ動作の整合性がチェックされ、失敗するとスコア 0 となる
+ </li>
+ </ul>
+ </li>
+
+ <li>
+ 速度改善以外に時間を浪費しない (= ハマらない)
+ <ul>
+ <li>
+ プロビジョニング、デバッグ、ミドルウェアの設定方法の調査など、性能改善に寄与しない時間を最小限にする
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </section>
+
+ <section id="section--strategy">
+ <h2><a href="#section--strategy">戦略</a></h2>
+ <p>
+ ISUCON で高スコアを出す戦略については、戦闘力の高い方々が良質な記事を書いてくださっている。 ここでは、上述したような低い目標を達成するための戦略について書こうと思う。
+ </p>
+
+ <section id="section--strategy--do-not-destroy-environment">
+ <h3><a href="#section--strategy--do-not-destroy-environment">環境を破壊しない</a></h3>
+ <p>
+ ミドルウェアの設定やアプリケーションコードなど、変更を加えるあらゆるものは、必ずバックアップを取るか Git で管理する。 復旧不能になって環境ごと作り直すことだけは必ず避ける。
+ </p>
+ </section>
+
+ <section id="section--strategy--revert-changes-immediately">
+ <h3><a href="#section--strategy--revert-changes-immediately">すぐに変更を取り消す</a></h3>
+ <p>
+ それでも壊してしまったときは、即座に変更を取り消す。壊れた理由を調べることに固執しない。
+ </p>
+ </section>
+
+ <section id="section--strategy--do-small-deployment">
+ <h3><a href="#section--strategy--do-small-deployment">小さくデプロイする</a></h3>
+ <p>
+ 一度に複数の変更を加えず、可能な限り小さな単位でデプロイする。そしてその都度ベンチマークを走らせ、整合性チェックが通るかどうかを (当然速くなっているかどうかも) 確かめる。
+ </p>
+ </section>
+
+ <section id="section--strategy--use-familiar-tools">
+ <h3><a href="#section--strategy--use-familiar-tools">使い慣れた道具を使う</a></h3>
+ <p>
+ 使用する言語、ミドルウェア、ツール類を、使い慣れたものに限定する。 「このツールのオプションはほとんどそらで指定できる」と言えるようなものだけを使う。 「自分では使ったことがないが ISUCON 強者がお勧めしていた」といった理由でツールを選定しない (もちろん、本番までに練習して習熟するという選択肢は存在する)。
+ </p>
+ </section>
+ </section>
+
+ <section id="section--performance-optimization">
+ <h2><a href="#section--performance-optimization">パフォーマンスの最適化</a></h2>
+ <p>
+ もっと強い人の記事を参考にしてほしい。
+ </p>
+ </section>
+
+ <section id="section--outro">
+ <h2><a href="#section--outro">おわりに</a></h2>
+ <p>
+ 事前の準備も含めて、大変楽しいイベントだった。次回があるなら是非また参加したい。その際は、順位やスコアを目標として立てられるようになりたいものである。
+ </p>
+ </section>
+ </div>
+ </article>
+ </main>
+ <footer class="footer">
+ &copy; 2021 nsfisis
+ </footer>
+ </body>
+</html>
diff --git a/vhosts/blog/public/posts/index.html b/vhosts/blog/public/posts/index.html
index 992e3095..52c808f0 100644
--- a/vhosts/blog/public/posts/index.html
+++ b/vhosts/blog/public/posts/index.html
@@ -42,6 +42,21 @@
<h1>投稿一覧</h1>
</header>
<article class="post-entry">
+ <a href="/posts/2023-12-03/isucon-13/">
+ <header class="entry-header">
+ <h2>ISUCON 13 に参加した</h2>
+ </header>
+ <section class="entry-content">
+ <p>
+ ISUCON 13 に参加した。チーム名「うつしもゆ」、最終スコア 13,580 点
+ </p>
+ </section>
+ <footer class="entry-footer">
+ <time datetime="2023-12-03">2023-12-03</time> 投稿
+ </footer>
+ </a>
+ </article>
+ <article class="post-entry">
<a href="/posts/2023-10-13/i-entered-the-open-university-of-japan/">
<header class="entry-header">
<h2>放送大学に入学しました</h2>
diff --git a/vhosts/blog/public/tags/index.html b/vhosts/blog/public/tags/index.html
index 794428c8..0e305d19 100644
--- a/vhosts/blog/public/tags/index.html
+++ b/vhosts/blog/public/tags/index.html
@@ -72,6 +72,16 @@
</a>
</article>
<article class="post-entry">
+ <a href="/tags/isucon/">
+ <header class="entry-header">
+ <h2>ISUCON</h2>
+ </header>
+ <footer class="entry-footer">
+ 1件の記事
+ </footer>
+ </a>
+ </article>
+ <article class="post-entry">
<a href="/tags/note-to-self/">
<header class="entry-header">
<h2>備忘録</h2>
diff --git a/vhosts/blog/public/tags/isucon/index.html b/vhosts/blog/public/tags/isucon/index.html
new file mode 100644
index 00000000..208dc95a
--- /dev/null
+++ b/vhosts/blog/public/tags/isucon/index.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang="ja-JP">
+ <head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="author" content="nsfisis">
+ <meta name="copyright" content="&copy; 2023 nsfisis">
+ <meta name="description" content="タグ「ISUCON」のついた記事またはスライドの一覧">
+ <meta name="keywords" content="ISUCON">
+ <meta property="og:type" content="article">
+ <meta property="og:title" content="タグ「ISUCON」一覧 | REPL: Rest-Eat-Program Loop">
+ <meta property="og:description" content="タグ「ISUCON」のついた記事またはスライドの一覧">
+ <meta property="og:site_name" content="REPL: Rest-Eat-Program Loop">
+ <meta property="og:locale" content="ja_JP">
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg">
+ <title>タグ「ISUCON」一覧 | REPL: Rest-Eat-Program Loop</title>
+ <link rel="stylesheet" href="/style.css?h=6d01887cbcc8b6de37137e241dfef108">
+ </head>
+ <body class="list">
+ <header class="header">
+ <div class="site-logo">
+ <a href="/">REPL: Rest-Eat-Program Loop</a>
+ </div>
+ <nav class="nav">
+ <ul>
+ <li>
+ <a href="/about/">About</a>
+ </li>
+ <li>
+ <a href="/posts/">Posts</a>
+ </li>
+ <li>
+ <a href="/slides/">Slides</a>
+ </li>
+ <li>
+ <a href="/tags/">Tags</a>
+ </li>
+ </ul>
+ </nav>
+ </header>
+ <main class="main">
+ <header class="page-header">
+ <h1>タグ「ISUCON」一覧</h1>
+ </header>
+ <article class="post-entry">
+ <a href="/posts/2023-12-03/isucon-13/">
+ <header class="entry-header">
+ <h2>ISUCON 13 に参加した</h2>
+ </header>
+ <section class="entry-content">
+ <p>
+ ISUCON 13 に参加した。チーム名「うつしもゆ」、最終スコア 13,580 点
+ </p>
+ </section>
+ <footer class="entry-footer">
+ <time datetime="2023-12-03">2023-12-03</time> 投稿
+ </footer>
+ </a>
+ </article>
+ </main>
+ <footer class="footer">
+ &copy; 2021 nsfisis
+ </footer>
+ </body>
+</html>