カタリストの紹介
GitHub リポジトリ:https://github.com/kubewharf/katalyst-core
Katalyst は、ByteDance のオープンソースのコスト最適化実践システムであり、クラウド ネイティブ シナリオにおける不合理なリソース使用の問題を解決し、リソース管理とコスト最適化のソリューションを提供することに取り組んでいます。
Katalyst は今年 3 月に正式にオープンソース化され、バージョン 0.1.0 のリリース以来、バージョン 0.2.0 の反復を通じていくつかのコア機能の出力が完了しました。 8 月 8 日に、Katalyst はバージョン v0.3.0 をリリースしました。コア機能には、強化された KCNR API 機能、強化されたフレームワークのスケーラビリティ、強化されたコロケーション機能などが含まれます。詳細については、 Katalyst GitHubを参照してください。
活動背景
Katalyst は、ByteDance のクラウド ネイティブ チームが投資を続けるオープンソース プロジェクトとして、オープンソースの長期的な価値と、オープンソース コミュニティのフィードバックと参加を重視しています。同時に、大学生の参加も奨励しています。初期段階で実際のオープンソース プロジェクトに参加し、オープンソース コミュニティがどのように運営されているかを体験し、個人の能力を向上させます。私が以前参加したGLCC プログラミング サマーキャンプでは、Katalyst が公開した関連トピックに多くの大学生が参加申し込みをするようになりました。インストラクターとプロジェクトの学生は、実現可能な計画について積極的にコミュニケーションを取り、学生がプロジェクト開発に参加できるように支援しました。
これまでの活動ではテーマの制限があったため、最終的にプロジェクトに参加した学生は 1 名のみでした。クラウドネイティブに興味のあるより多くの大学生にコミュニティへの参加を促し、さらにコミュニティに外部からの声や新鮮な力が加わることを期待するため、この大学生との協働開発モデルをプロジェクト版でも再利用する予定です。反復プロセス。オープンソース コミュニティに参加するための道筋とガイダンスを大学生に提供し、コミュニティがより多くのフィードバックとニーズを収集できるように支援します。これに基づいて、 9 月にコミュニティ内でKatalyst オープンソース コミュニティ [プログラミング チャレンジ] イベントを立ち上げ、将来の新しいバージョンのコミュニティでの関連機能計画に基づいて課題タスクを公開し、大学生を招待します。プロジェクトの一部の問題の設計と開発に参加し、タスクを完了した学生に一定の報酬を提供します。
トピックの紹介
トピック 1: QoS拡張機能としてのOOM優先度のサポート QoS 拡張機能としての OOM 優先度のサポート
GitHub の問題: https://github.com/kubewharf/katalyst-core/issues/216
Katalyst に次の機能を追加してください。
-
ユーザーは、QoS 拡張として OOM 優先度を指定できます。
-
を使用して OOM 優先度を実装します
oom_score_adj
。 -
ユーザーは QoS 拡張として OOM 優先度を指定できます
-
次を使用して
oom_score_adj
OOM 優先度を実装します。
トピックの説明:
現在、Kubernetes はoom_score_adj
異なる QoS クラスに対して異なる値を構成します。ただし、OOM の順序は、コンテナーのメモリ使用量などの他の次元の要因にも依存します。
コロケーション シナリオでは、クラスターのメモリ リソースが不足したときに、OOM により Web サービスがバッチ ジョブよりも遅く終了することを厳密に確認することが重要です。
現在、Kubernetes は異なる QoS クラスに対して異なるoom_score_adj
値を構成します。ただし、OOM の順序は、コンテナーのメモリ使用量などの他の要素にも依存します。
コロケーション シナリオでは、クラスターのメモリ リソースが不足すると、OOM によりバッチ処理ジョブが Web サービスよりも早く終了することを厳密に保証する必要があります。
トピック 2: 再利用されたリソースの NUMA 粒度レポートのサポート 再利用されたリソースの NUMA 粒度 レポートのサポート
GitHub の問題: https://github.com/kubewharf/katalyst-core/issues/217
Katalyst に次の機能を追加してください。
リソース レポート メカニズムを強化して、NUMA ノードの粒度で再利用されたリソースのレポートをサポートします。
リサイクルされたリソースの NUMA ノードの詳細なレポートをサポートするために、リソース レポート メカニズムが強化されました。
トピックの説明:
現在、再利用されたリソースのレポートはノード粒度レベルで実行されます。ただし、NUMA アーキテクチャを使用する環境では、このアプローチは最適ではないスケジューリング結果をもたらし、NUMA レベルの干渉によりポッドのエビクションが発生する可能性があります。
現在、リサイクルされたリソースのレポートはノード粒度レベルで行われます。ただし、NUMA アーキテクチャを使用する環境では、このアプローチは最適ではないスケジューリング結果をもたらし、NUMA レベルの干渉により Pod のエビクションが発生する可能性があります。
トピック 3: NUMAレベルでのポッド間アフィニティ とアンチアフィニティのサポート NUMA レベルでの ポッド間アフィニティとアンチアフィニティのサポート
GitHub の問題: https://github.com/kubewharf/katalyst-core/issues/220
Katalyst に次の機能を追加してください。
Kubernetes の NUMA レベルでポッド間のアフィニティとアンチアフィニティをサポートします。
Kubernetes で NUMA レベルのポッド間アフィニティとアンチアフィニティをサポートします。
トピックの説明:
現在、Kubernetes はノード レベルでポッド間のアフィニティとアンチアフィニティをサポートしています。ただし、このサポートを NUMA レベルに拡張する必要性が高まっています。
たとえば、tensorflow トレーニング ジョブでは、ワーカーなどのメモリ帯域幅を大量に消費するポッドが、同じ NUMA ノード上の他のポッド (パラメーター サーバーなど) のパフォーマンスに影響を与える可能性があります。これらのポッドを異なる NUMA ノードに割り当てると、このような干渉を軽減できます。
現在、Kubernetes はノード レベルでポッド間のアフィニティとアンチアフィニティをサポートしています。ただし、このサポートを NUMA レベルに拡張する必要性が高まっています。
たとえば、tensorflow トレーニングでは、ワーカーのメモリ帯域幅消費量が多いと、同じ NUMA ノード上のパラメータ サーバーに影響します。これらのポッドを別の NUMA ノードに割り当てると、この干渉を軽減できます。
期待される収穫
- 実際のオープンソースプロジェクトを体験し、オープンソースコミュニティの運営手順に精通し、開発における実務経験を積む
- コミュニティミーティングに参加し、オープンソース愛好家とコミュニケーションをとり、コミュニティのダイナミクスについて学びましょう
- プロジェクトメンターによるマンツーマン指導、対面でのQ&A
- プロジェクトを完了した優秀な貢献者には、コミュニティ インセンティブ ボーナス 5,000 元 (京東カード相当) も贈られます。
参加要件
- 18歳以上の大学生
- オープンソース文化を愛し、オープンソース コラボレーション モデルを受け入れる
*大学生以外の学生がこのトピックに興味がある場合は、コミュニティに参加してコミュニティを構築および開発することを歓迎します~
プロセスに参加する
-
次の GitHub の問題から 1 つ選択してください
-
履歴書とトピックの提案を関連する連絡先に送信します
- 担当者: 唐氏
- 電子メール:[email protected]
-
合格後、プロジェクトのメンターから連絡があり、具体的な開発タスクについて連絡し、開発を開始します。
-
タスクを完了したら、オープンソース プロジェクトに参加した経験や感想について記事を書き、サードパーティ コミュニティ (InfoQ/CSDN/Zhihu/Open Source China など) またはキャンパス ブログに公開する必要があります。
活動時間
- 登録期間:9月1日~9月14日
- 当選発表:9月15日
- 開発期間:9月16日~10月30日
- 記事公開時期:11月10日まで
- 優秀作品・学生発表:11月10日~11月15日
ご質問がある場合は、Bytedance Cloud Native Assistant までお問い合わせください。
[名前+会社/学校+役職]を入力してください
仲間のニワトリがDeepin-IDE を 「オープンソース」化し、ついにブートストラップを達成しました。 いい奴だ、Tencent は本当に Switch を「考える学習機械」に変えた Tencent Cloud の 4 月 8 日の障害レビューと状況説明 RustDesk リモート デスクトップ起動の再構築 Web クライアント WeChat の SQLite ベースのオープンソース ターミナル データベース WCDB がメジャー アップグレードを開始 TIOBE 4 月リスト: PHPは史上最低値に落ち、 FFmpeg の父であるファブリス ベラールはオーディオ圧縮ツール TSAC をリリースし 、Google は大規模なコード モデル CodeGemma をリリースしました 。それはあなたを殺すつもりですか?オープンソースなのでとても優れています - オープンソースの画像およびポスター編集ツール