👻

Grafana Mimir のパフォーマンス改善話など: Neco Weekly (2023-07-21号)

2023/07/24に公開

Neco Weekly (2023-07-21号)

サイボウズ Neco チームでは、 Neco Weekly という「最近気になる Kubernetes や Cloud Native 関連のネタを共有する会」を社内で開催しています。
本記事は共有会の中で紹介したネタをまとめたものです。

今回は第38回目の記事となります。

👀 Notable Articles

Improving query performance in Grafana Mimir: Why we dropped mmap from the store-gateway

https://grafana.com/blog/2023/07/17/improving-query-performance-in-grafana-mimir-why-we-dropped-mmap-from-the-store-gateway/

Prometheus の時系列データベースである Grafana Mimir をパフォーマンス改善するために mmap をやめたという記事です。

goroutine で mmap からデータを読む際にページフォルトが発生すると、その goroutine を実行するスレッドがブロックされ、そのスレッドが実行する他の goroutine も動けなくなってしまうそうです。
そのため、複数の goroutine で同時にページフォルトが起きると、利用可能なスレッドがすべて停止してプロセスが停止したような動きになるとのこと。

goroutine と OS が提供するスレッドは1対1で対応しているわけではないのでこういった問題が起きてしまうのですね。非常に興味深い内容でした。

深層学習のための分散キャッシュシステム

https://tech.preferred.jp/ja/blog/distributed-cache-for-deep-learning/

深層学習用の学習データを効率的にキャッシュするためのシステムを紹介している記事。
Topology Aware Hints や MAGLEV などの技術を使っていて非常に興味深いです。

KEP から眺める Kubernetes

https://speakerdeck.com/toversus/kep-karatiao-meru-kubernetes

最近 Kubernetes に導入された機能やこれから導入される機能の KEP を紹介しているスライドです。
興味深い KEP がたくさん紹介されています。

https://zenn.dev/toversus/articles/52b107ab103712

こちらは Kubernetes 関連の情報を収集するための取り組みを紹介している記事です。
この分量の情報収集はなかなかできることではないと思います。尊敬します。

Last Week in Kubernetes Development: Week Ending July 16, 2023

http://lwkd.info/2023/20230719

Kubernetes 1.28 で導入される新機能の PR が紹介されています。

  • #118642: ValidatingAdmissionPolicy: Variable Composition
    • CEL で変数が使えるようになるようです。これはとても便利そう。
  • #119232 and #118883: Index as a pod label
    • StatefulSet の Pod のインデックスがラベルで参照できるようになるそうです。これまでは Pod 名からインデックスを抜き出す処理を自前で書く必要があったので、この機能はとても助かります。

Coroutines for Go

https://research.swtch.com/coro
https://zenn.dev/koron/articles/38affd1a0f00cc

Go 言語開発チームの Russ Cox 氏による、Go にコルーチンが必要な理由を解説した記事。
Go では繰り返し処理は for 文で書くのが一般的ですが、コルーチンが導入されてコレクション処理のライブラリが充実してくれるならうれしいですね。

Kubernetesエキスパートが注目する「Platform Engineering」とは何か? 一体何が新しいのか?

https://codezine.jp/article/detail/17941

ヤフーの早川さんとサイバーエージェントの青山さんの対談記事。
プラットフォームの抽象化レベルについては我々も同じように悩んでいるところなので、非常に共感できる記事でした。

クラウドデータセンターネットワークの “いま”と “これから”

https://speakerdeck.com/markunet/kurautotetasentanetutowakuno-ima-to-korekara

これまでの Web アプリケーション中心のデータセンターネットワークでは CLOS トポロジーが主流でしたが、AI/ML ではパケットロスが少なく高帯域幅の通信が必要になるため、新しいネットワークトポロジーが求められているそうです。

kubectl auth whoami を使ってみた

https://zenn.dev/yokaze/scraps/c21061eaf9c00e

Kubernetes では kubectl auth can-i というコマンドで、現在のユーザーがあるリソースに対してどのような操作をできるのかを確認することができます。
しかし、これまでは現在のユーザーが誰なのか(どのような属性を持っているのか)を確認することができませんでした。

この記事では、 Kubernetes 1.26 で追加された kubectl auth whoami というコマンドを kind 環境で有効化し、ユーザー情報を確認する方法を紹介しています。

🤝 Events

CloudNative Days Fukuoka 2023

https://event.cloudnativedays.jp/cndf2023/timetables

2023年8月3日に開催される CloudNative Days Fukuoka 2023 のタイムテーブルが公開されました。
今回も面白そうなセッションがたくさんありますね。

サイボウズ Necoチーム 😺

Discussion