作業ディレクトリがGitリポジトリの場合、現在のリポジトリの名前を表示するBashプロンプトを作成しました。さらに、現在進行中のタスクとそれを実行するために費やした時間(自作の計時ツールから)が含まれています。もちろん、これは、プロンプトを表示するだけで2つのプロセスを実行することを意味します。
killall
これには、システムが何らかの理由でスラッシングしている場合、バイナリをロードするだけgit
ではそのような状態のシステムに要求するには多すぎるため、システムを保存するために必要なプロンプトを取得するのに永遠に時間がかかるという欠点があります。
そのため、現在、プロンプトはデフォルトで無効になっており、オンデマンドでのみ有効になっていますが、これはそれほど快適ではありません。で負荷を検出し.bashrc
、システムが正常に実行されている場合(つまり、許容可能なディスク遅延がある場合)にのみプロンプトを有効にする方がよいでしょう。
このような状況では、CPUはかなり安価であり、ディスクだけが高価です。したがって、外部ユーティリティに依存せずにスラッシングを検出する方法が必要です。
ヒント:/proc
何か役に立つかもしれません。たとえば/proc/loadavg
、ボトルネックの原因がディスクではなくCPUである場合、私の問題は解決します。