Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

詳解 システム・パフォーマンス 1章 #33

Open
6 of 12 tasks
yagikota opened this issue Sep 21, 2024 · 1 comment
Open
6 of 12 tasks

詳解 システム・パフォーマンス 1章 #33

yagikota opened this issue Sep 21, 2024 · 1 comment

Comments

@yagikota
Copy link
Owner

yagikota commented Sep 21, 2024

What do you do?

詳解 システム・パフォーマンス 1章 読む

TODO

1章 イントロダクション

  • 1.1 システムパフォーマンス
  • 1.2 職種
  • 1.3 作業
  • 1.4 分析の視点
  • 1.5 パフォーマンスエンジニアリングの難しさと面白さ
    • 1.5.1 主観的な性質
    • 1.5.2 複雑さ
    • 1.5.3 複数の原因の相互作用
    • 1.5.4 複数のパフォーマンス障害の同時発生
  • 1.6 レイテンシ
  • 1.7 可観測性
    • 1.7.1 カウンタ、統計量、指標
    • 1.7.2 プロファイリング
    • 1.7.3 トレーシング
  • 1.8 実験
  • 1.9 クラウドコンピューティング
  • 1.10 メソドロジ
    • 1.10.1 60秒で終わるLinuxパフォーマンス分析
  • 1.11 ケーススタディ
    • 1.11.1 ディスクの速度低下
    • 1.11.2 ソフトウェア変更
    • 1.11.3 より深く学ぶために
  • 1.12 参考文献

Tweet

@yagikota
Copy link
Owner Author

yagikota commented Sep 28, 2024

1.3

  • カナリアテスト
image

ref. https://sreake.com/blog/release-engineer/

  • ブルー・グリーンデプロイメント
image

https://sreake.com/blog/release-engineer/

これらを導入すると、パフォーマンステストを初期段階でする必要がない。本番環境でテストしてしまえばいい。


1.3

キャパシティプランニングとはレトロスペクティブとか、SREになってから知った単語だ出てくる。

ref. https://martinfowler.com/articles/retrospective-antipatterns.html

1.5.4

パフォーマンス問題を見つけること自体は大したことではない。
重要なのは、問題を定量化(レイテンシが役に立つ)し、解決すればどれほどのビジネスインパクトがあるかを示すこと。
確かに、むやみにパフォーマンスのメトリクスとって満足している状況は往々にしてあると思う。


1.6

eBPFとはなんぞ?

whta is eBPF? eBPF (extended Berkeley Packet Filter) is a powerful technology that allows running programs in a privileged context within the Linux kernel. Here are the key points about eBPF:

What is eBPF?

eBPF is a Linux kernel technology that enables running sandboxed programs in kernel space without modifying kernel source code or loading kernel modules [1]. It provides a secure and efficient way to extend kernel capabilities at runtime [1].

Key features and benefits

  • Allows programs to run safely within the kernel without modifying source code or loading modules [1][2]
  • Provides deep access to low-level system events while maintaining system safety [2]
  • Enables high-performance networking, observability, and security functionality [1][2]
  • Uses a Just-In-Time (JIT) compiler and verification engine for efficiency [1]

Use cases

eBPF is used for various applications including:

  • Next-generation networking and load balancing [1]
  • Fine-grained security observability [1]
  • Application tracing and performance troubleshooting [1]
  • Preventive application and container runtime security enforcement [1]

Safety and verification

Safety is ensured through several layers:

  • Static code analysis performed by an in-kernel verifier [5]
  • Rejection of programs that could crash, hang, or interfere negatively with the kernel [5]
  • Verification of strong exit guarantees and safety checks [5]

History and evolution

  • Originally based on Berkeley Packet Filter (BPF) introduced in 1993 [2]
  • Extended to solve new problems beyond packet filtering [2]
  • Now considered a standalone technology, not just an extension of BPF [1]

Community and governance

  • Has its own foundation (eBPF Foundation) established in 2021 [5]
  • Supported by major tech companies like Meta, Google, Microsoft, Netflix [5]
  • Growing ecosystem with increasing adoption beyond Linux [5]

In summary, eBPF represents a significant advancement in kernel-level programmability, enabling powerful functionality while maintaining system safety and efficiency. Its versatility has made it a crucial technology for modern operating systems and infrastructure.

Citations:
[1] https://ebpf.io/what-is-ebpf/
[2] https://www.datadoghq.com/knowledge-center/ebpf/
[3] https://ebpf.io/
[4] https://www.tigera.io/learn/guides/ebpf/
[5] https://en.wikipedia.org/wiki/EBPF
[6] https://www.kentik.com/blog/ebpf-explained-why-its-important-for-observability/
[7] https://www.ibm.com/topics/ebpf
[8] https://www.groundcover.com/ebpf
[9] https://www.splunk.com/en_us/blog/learn/what-is-ebpf.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Todo
Development

No branches or pull requests

1 participant