monolog

monora log #=> ものろーぐ

ISUCON12 予選に参加しました (最終スコア15532点)

Infrastructure Programming

2022年7月23日 (土) に開催された ISUCON12 の予選に「DJ起床失敗とMC布団 w/o MC布団」として id:h-otter と参加しました。

言語は Go、最終スコアは15532点参考スコアを上から数えると45位だったようです。悔しい。
具体的な取り組みは下の方で述べますが、MySQL移行はバグなく完遂し、さてここからチューニングしていくぞ!という感じのところで終わりました。エンジンが掛かるまでの速度が足りなかった。

毎回、運営の皆様にはいくら感謝しても足りませんが、今回も取り組みがいのある問題で楽しかったです。ベンチマーカーも最後まで待ち時間がほぼなく、スコアも安定していたのでとてもストレスフリーでした。ありがとうございました。

マルチテナントで大量の SQLite3 データベースがあることが分かったとき、ISUCON本を読んだだけの人間には解かせないってことね!と思いながらニコニコしました。

ところで知り合いがたくさん著者に名を連ねているISUCON本ですが、予選の2週間前に購入し、予選開始1時間前に部屋から発掘されました。
30分ぐらいで流し読みしたのですが、大変実利的な内容に溢れているなあと感じました。nginx の upstream で keep-alive を有効にする方法は知らなかった……

read more »

2022年7月23日 (土) に開催された ISUCON12 の予選に「DJ起床失敗とMC布団 w/o MC布団」として id:h-otter と参加しました。 言語は Go、最終スコアは15532点、参考スコアを上から […]

2021年12月あたりの今日このごろ

雑記

近況、10月に書いたばかりだけど今日も書きます。なぜならこの記事はwhywaita Advent Calendar 2021の19日目の記事だからです。

18日目はkyontanさんのロードスターを買って9ヶ月でした。自作自演。

特に意味はありませんが近況ということで最近食べた肉寿司の写真です。ついにホンモノの肉寿司を食すことができて嬉しかった。ところでホンモノってなんですか?
read more »

近況、10月に書いたばかりだけど今日も書きます。なぜならこの記事はwhywaita Advent Calendar 2021の19日目の記事だからです。 18日目はkyontanさんのロードスターを買って9ヶ月でした。自 […]

ロードスターを買って9ヶ月

雑記

走行距離は? 燃費はどのくらい? 自動車税は? 修理費は? 調べてみました。

この記事はwhywaita Advent Calendar 2021の18日目の記事です。

昨日は twismikoさんの whywaita Advent Calendar 2021 17日目:人はなぜ飛行機に乗るのか – Coyote vs Loadbalancer でした。今年もたくさん飛行機に乗っていて楽しそうですね。スイートラウンジには今度連れて行ってほしいですね。

kyontanは今年7回しか飛行機に乗っていませんが、マイルではなくお金を払って乗るようになったので多少は成長しました。なんとガソリン代や高速代を払うとマイルが貯まるんですよね。どこかにマイルで使おうと思います。

さて、2020年は36回も飛行機に乗っていたkyontanですが、今年は空ルートから陸ルートに変更したので延々と地上を移動し続けていました。
その代表的な手段がそう、自動車です。


首都高八重洲乗客降り口にて
read more »

走行距離は? 燃費はどのくらい? 自動車税は? 修理費は? 調べてみました。 この記事はwhywaita Advent Calendar 2021の18日目の記事です。 昨日は twismikoさんの whywaita […]

2021年10月あたりの今日このごろ

雑記

今日このごろシリーズ、しばらく書いていなかったのでたまには振り返ってみる。前回は修論執筆だいありーでした。

ともだち100人できるかな

修論は無事提出され、無のような3月を過ごしていたらすぐに4月。

一般企業への就職を選んだので会社員になりました。就活については就活の技法 / 統括 2020に書いた通り。

後述しますが、最近は Site Reliability Engineer を生業としています。

以下、最近のあらすじ。

read more »

今日このごろシリーズ、しばらく書いていなかったのでたまには振り返ってみる。前回は修論執筆だいありーでした。 修論は無事提出され、無のような3月を過ごしていたらすぐに4月。 一般企業への就職を選んだので会社員になりました。 […]

そろそろ Kubernetes 入門する (1)

Cloud Native

いい加減クラウドネイティブっぽいことをやりたいと言い出して早数年、世の中の流れには完全に乗り遅れた感がありますが、今更入門することにしました。

この記事を書いている時点で、すでにこのブログが構築したクラスタ上で動いているところまでは来ていますが、ゆっくり備忘録がてらまとめていくことにします。

ただkubeadmでシングルノードで立てても面白くないよね、ということで、色々と試してみることにしました。

  1. 実験のしやすさを考慮してVMの上に建てる
    1. VM基盤は n0stack を使う
  2. 可能な範囲でちゃんと冗長化する
  3. ちゃんとアプリケーションを乗っける
  4. 完全なお遊び用のクラスタは別に作る

あたりを基本方針にしました。

ホストについて

さて、まずサーバはどうするかという問題がありました。現代なので冗長化するなら3台欲しいので、お手軽かつ高速なマシンが3台必要でした。

また、過去にも同じことをやろうとして、秋葉原で安く売っていたサーバ(通称赤鯖)を3台買ってはいましたが、CPUもRAMも足りない && ファンの音がうるさいということで放置されて早3年が経過したので、次は静かなマシンが良かったわけです。

というわけで安くて速くて静かでRAMが積めるマシンを検討した結果、 Lenovo の M75q Tiny Gen2 を購入しました。定番ですね。Ryzen 7はコアが多くて速い。
ただ、予算の都合でまだ2台しか買えてません。

購入後の感想ですが、静かで小さいので自室の足元に置いても気にならずかなり満足しています。CPU使うと流石にファン回って気になりますけどね。

一方で、色々構築をすすめるにつれ、ストレージが256GBだと足りないか? と思うことがあり、SATAのSSDを追加することを検討しています。
ストレージ足すなら別に小さい必要はなかったのでは……という気持ちがあり、 V55t Mini-Tower とかでも良かったのでは……という気持ちに。計画性がない。

ストレージをどうするか問題は常に付きまといますね。後述するかもしれませんが、現在は、このクラスタとは別に以前から運用していた FreeBSDサーバに刺さっている雑なディスクをミラーリングしてNFS共有しています。RDBMSとかやろうとするとiSCSIの方が良いかもしれない……

OSは雑に Ubuntu 20.04 Server を選択。

n0stack

今回のVM基盤です。別にlibvirtでもOpenStackでもなんでも良いのですが、構築が楽 & 動作が軽くて、コードはなんとなく分かるので気になったら自分で直せるし、ぐらいの気持ちで選択しました。

n0tsack は 友人の @h-otter が主となって開発していて、過去には ICTトラブルシューティングという大会で数百VM規模で動いた実績があります。紹介記事は本人が書いてるので読んでください。

n0stackの紹介 – h-otterの備忘録

https://h-otter.hatenablog.jp/entry/2019/09/22/164251

https://github.com//n0stack/n0stack を眺めて、 n0core と n0cli があれば動くことが分かったので適当にやります。

VMを起動する/管理する本体である n0core は、全体の管理をする api とQEMU等を制御する agent からなります。
データストアは api にいて、デフォルトでは設定不要の LevelDB を使用します。LevelDB は特にデーモン等が不要のDBで、api が動くホストの /var/lib/n0core あたりに勝手に保存されます。
冗長化したければ etcd も使えます、が構築時点では
etcd or LevelDB を使っていて、デフォルトだと LevelDB を使うので、特にDBの設定は不要です。雑に GitHub の README を見てデプロイします。

VMのセットアップはあまり考えずにドキュメントを参照すれば良い、と思いきやハマりました。QEMUの仕様が変わったらしい? https://github.com/n0stack/n0stack/pull/239 で解決。そのうちマージします。

適当な Ubuntu が起動することを確認したところで一旦ここまで。(ホスト名は k8s-0X だが別に Kubernetes は動いていない)


いい加減クラウドネイティブっぽいことをやりたいと言い出して早数年、世の中の流れには完全に乗り遅れた感がありますが、今更入門することにしました。 この記事を書いている時点で、すでにこのブログが構築したクラスタ上で動いている […]