duは奇妙なファイルサイズを表示し、いくつかの厄介なサイズ計算規則に従うようです。

duは奇妙なファイルサイズを表示し、いくつかの厄介なサイズ計算規則に従うようです。

CentOS 7仮想マシンでは、自分で説明できないいくつかの問題に固執しました。

約100KBpsの速度で大きくなるログファイルを見ています。

watchcallがありますが、du次のコンソールキャプチャに示すように、出力は常に2の重複です。

Every 2s: 
du -k out.log
Sat Jan  4 14:26:25 2020

2097088 out.log

したがって、サイズをKBまたはMB単位で表示したり、コンソールで変更されたサイズを表示したりすると、通常の15M、16M、17M ...などのように満足できます。ファイルが大きくなるのを見たいです。単位は重要ではありません。

しかし、私が得ることは中間段階なしで16M、32M、64M、... 256M、512M...です。値が変更されるたびに、前の時間の2倍が経過しました。変更を表示するには、ファイルが倍増する必要があるためです。

問題なく使用すると、-b2秒ごとにサイズが大きくなることがわかります。

私は以下のマンページで検索しました。これただし、なぜこのオプションを使用すると、「実際の進行状況」が表示されないのか理解できません-k

文書に何かが欠けていることは確かですが、何がわかりません。

このコミュニティに時間と投資をしてくれた皆さんに感謝します。

編集する

このコマンドを再実行してくださいwatch du -k out.log

  • 4(呼出時の最初の値)
  • (2秒間待機)24
  • (約1分ほど待機)28

当時ログはゆっくり満たされていました。約100バイト/秒程度だったので、すべてのKByteを表示する必要がありました。

  • (8秒)32
  • (12秒)36
  • (12秒)40
  • (12秒)44
  • (10秒)52
  • (12秒)60

そこまでは、表示されたサイズが4Kの倍数であることがわかりました。これはおそらくHDDクラスタサイズです。ファイルサイズを「ブロックサイズ」として表示できることがわかります。

  • (30秒後)192

ファイルログには、ファイルが「正常にtail -f実行中」というメッセージが表示され、ファイルサイズは引き続き大きくなります。

この時点で10分以上が経過し、ログソースは最初からかなり安定していました。

  • (12分)448 = 64x7
  • (9分)960 = 64x15
  • (20分)1984 = 64x31

現在の値は64K x((pow倍数2)-1)のようです。

  • (24分、今追加記録)1284に配信されました?? ? ?注:これは64Kの倍数ではありません。
  • (2分)2304 = 64x36
  • (5分)1820???注:64Kの倍数ではありません

尾はファイルが増加していることを示しています。変なことはありません…一体何が起こっているのでしょうか?

  • (2分)3840 = 64x60
  • プロセス終了
  • (2分)2940は64の倍数ではないですか?

それとも、大晦日に酒を飲みすぎたのですが、そうではありません。これらすべてには本当に特別なものがあり、そこで何が起こっているのか本当に知りたいです。

ベストアンサー1

おすすめ記事