ナッシュテック、Rustベースのシステム監視ツールでメモリ管理を強化
はじめに
NashTechは、Linuxディストリビューション用のプロセス監視ツールであるProcespyを構想し、ユーザーが実行中のプロセスを追跡するプロセスを自動化し、RAM使用量を監視できるようにした。
システム管理者は、CPUやメモリ、ネットワークの使用率が高いために、アプリケーションの動作が遅くなったり、応答しなくなったりする状況に対処しなければならないことが多い。 サーバーが単一のプロセスをホストしている場合、リソースを管理するのは簡単だ。 しかし、共有サーバー上で複数のサービスが実行されている場合はそうはいかず、実行中の各プロセスがどれだけのリソースを消費しているかを追跡する必要がある。
インパクト
- システム・パフォーマンスのより深い可視性
- CPUやメモリ使用量などのKPIを監視
- 自動化されたメモリ管理と実行プロセス
課題
なぜシステム・モニタリング・ツールを作ろうと思ったのか?
ナッシュテックは、効率的で高速なアプリケーション・モニタリング・ツールの必要性を感じていました。 システム上のプロセスのパフォーマンスを、メモリ使用量の観点から管理する。 このアイデアは、開発者がシステム上の重要なプロセスが、他のプロセスによるメモリの過剰使用によって妨げられることがないようにするためのものである。
私たちは、システムの状態を定期的に監視し、実行中のプロセスによるメモリ使用量に関連するコンフリクトを解決するリアルタイム・ツールを作りたかった。 このプロセスを自動化することで、開発者は優先順位の高いプロセスが中断されたり、それを防ぐために手動でメモリを管理したりする心配がなくなる。
このような課題に対処するため、私たちはLinuxディストリビューション用のプロセス・モニタリング・ツールであるProcespyを考案しました。Procespyは、ユーザーが実行中のプロセスを追跡し、RAMの使用状況を監視するプロセスを自動化することを可能にします。
このツールを作成する際に直面した大きな課題は、システム上で実行されている可能性のあるすべてのアプリケーションとプロセス、およびそれらが正常に実行されるために使用するメモリ量に関する情報を取得することでした。
システム・モニタリング・ツールの主な目的は、企業のITインフラを以下のように管理することである:
- オペレーティング・システムのパフォーマンス監視
- システムリソースの効果的な管理
- プロセスとシステムのデバッグを支援
- サーバー、ストレージ・デバイス、デスクトップ・コンピューター、プリンター、モバイル・デバイスなどのデバイスを監視する。
ソリューション
Procespyはどのように問題を解決するのですか?
各プロセスの定義済みコンフィギュレーション
Procespyは、プロセス名とある時点で割り当て可能なメモリの最大量という点で、それぞれの設定を定義したため、すべてのアプリケーションとプロセスのメモリ使用量を管理することができました。
閾値を超えたプロセスの終了
どのプロセスも、そのプロセスに割り当てられたしきい値を超えた場合、つまり単純に、そのプロセスで許可されているメモリ量よりも多くのメモリを使用している場合、競合を解決するためにそのプロセスは終了される。
アラートと通知
ユーザーには、終了したプロセスの詳細を示すメッセージとともに、画面上のポップアップ・アラートによって、この終了アクティビティが通知される。 Procespyはまた、終了したサービスのステータスを示す電子メールをユーザーに自動生成します。
システムの定期検査
Procespyは、実行中のプロセスのステータスをリアルタイムで監視するために、特定の時間間隔の後にシステム監査を実施するように自分自身をスケジュールする。
テクニカル・ソリューション
- Procespyの開発中、私たちはまず 、すべてのプロセスの名前と、それぞれのプロセスが使用できるメモリ量の上限をリストアップした設定ファイルを作成しなければならなかった 。 Procespyは、システム上で現在実行中のアプリケーションを監視した後、この設定ファイルから関連するプロセス名と必要なメモリを取得します。 ツールがこれらの実行中のプロセスを検証した後、メモリ制限を超えているものは、アラートを生成する前に終了される。
- プロセス名とそのメモリ使用量の詳細を取得するという課題を克服するために、開発者はLinuxベースのBashコマンドである「ps」(プロセス・ステータス)を使用した。psコマンドは、ユーザーが現在実行中のプロセスに関する情報を必要とする場合に使用され、一意のプロセス識別番号(PID)を含む。
- bashコマンドには、PID、プロセス名、メモリ消費量を抽出するためのフィルターが 付属しており、後ですべてのプロセスを メモリ使用量の要件に従って降順にソート した。
- 監視ツールは、マシン上で実行されている主要なプロセスを妨げないように軽量である必要があるため、Rustプログラミング言語を選択した。 Rustは、高速で効率的なコードを書くための柔軟性を与えてくれた。 フィルターの実行を助けるために、Rustの「subprocess」 ライブラリーとLinuxのbashコマンドを使った。
結果
- メモリ使用量を追跡することで、システムプロセスの健全性とパフォーマンスをより深く可視化。
- CPUやメモリの使用率など、リソースの使用傾向を示す重要なパフォーマンス指標を監視する。
- Procespyは 、システム上で実行中のプロセスやアプリケーションのメモリ管理プロセスを自動化 し、それに関連する手作業を大幅に削減した。
ケーススタディをもっと読む
THE OUTがプレミアムレンタカー業界をどのように破壊するか
ベトナムのナッシュテック開発チームと緊密に協力し合うことで、高品質でデジタルファーストの高級レンタカーサービスを構築することができた。 将来を見据えて、THE OUTは製品ロードマップに注力し、旅行代理店やコンシェルジュ・パートナーを含むB2B顧客へのサービスを拡大し、そのための新しいポータルを構築している。
特注のデスク予約システムでハイブリッド勤務を実現:内部の視点
ナッシュテックの社内デスク予約ソフトウェアがどのように職場の効率化を促進し、高い精度で稼働率を測定したかをご覧ください。
オーストラリアで設立された広告・メディア費ビジネスは、ナッシュテックの支援により、いかにして駆け出しのビジネスから世界的な大企業へと成長したのか?
オーストラリアで設立された広告・メディア支出企業は、現在世界的な事業展開をしており、ナッシュテックがその成長を支えていることを知っている。
あなたのプロジェクトについて話しましょう
- トピックス