IOSTATSは起動後または最後の実行以降の出力を表示しますか?

IOSTATSは起動後または最後の実行以降の出力を表示しますか?

IOSTATの使用についてオンラインで矛盾する情報を見ました。特に開始後の平均を表示したいです。私が読んだところによれば、IOSTATコマンドを実行しないと、起動後の平均が表示されます。ただし、ある時点で IOSTAT コマンドを実行すると、次の実行は開始以降ではなく最後の実行以降になります。

以前に一度実行したことがあるとし、起動後にIOSTATをどのように実行しますか?

答え1

iostat起動後の統計を表示します。一度(コマンドが開始されるたびにコマンドが実行されるたびに)。次に、パラメータに応じて(たとえば、running iostat 2、2秒ごとに)、同じコマンドrunで最後にマークされた後の統計を表示します。

これ最初のレポート時間に関する統計情報を提供するためにiostatコマンドによって生成されますシステム起動後、-yオプションが使用されていない限り(この場合、最初のレポートは省略されます)各フォローアップレポート適用時間過去の報告以降。 iostatコマンドが実行されるたびに、すべての統計が報告されます。レポートは CPU ヘッダー行と CPU 統計行で構成されます。マルチプロセッサシステムでは、CPU統計はすべてのプロセッサの平均としてシステム全体で計算されます。デバイスヘッダー行が表示され、その後に設定された各デバイスの統計行が表示されます。

実際には少しの減算にすぎませんiostat。帳簿管理の役割はカーネルによって実行されます。iostatさまざまな/proc(または他の同様のアイテム)にアクセスしてください。どこから(ただ使用strace存在するiostat 2):

/proc/diskstats
/proc/uptime
/proc/stat

最初の読み取りは開始以降です。最後に表示されてから、以前のiostat値を(実行時にメモリに)記憶し、新しく読み取った値からその値を減算します。これはその期間中に発生します。

OPの質問を確認するには、各iostatコマンドの実行は、iostatそのコマンドの他の実行とは無関係です。同時に実行される他のiostatコマンドや、iostatこのコマンドの将来の実行には影響しません。

関連情報