変更されたファイルがほとんどない大きなフォルダーでのTime Machineの動作はどうなりますか?


4

(APFSを搭載したHigh Sierra MacBook Proの)Time Machineは、最後のバックアップ以降にフォルダー内のどのファイルが変更されたかをどのように認識しますか?TMは、ファイルが変更されたディレクトリを監視するためにFSEventsに依存していることを知っています。私が知らないのは、フォルダ内の1個以上のファイルが変更されたことをTMが知ったときのTMの動作です。Time Machine自体に関する高レベルの情報ではなく、詳細な技術説明を探しています。具体的には:

  • TMは、最後のバックアップバージョンと同じファイルを特定するために、各ファイルに関する情報(たとえば、1つの変更ファイルと999ファイルが最後のバックアップ以降変更されていないフォルダー内)を使用しますか?TMはファイルサイズと変更時間のみを参照しますか?実際にファイルの内容を読み取りますか?ファイル属性を読み取りますか?
  • Time Machineは、どのファイルシステムAPI呼び出しを使用して、どのファイルが変更されたかを確認しますか?具体的には、フォルダーリストごとに1つ(または少数)の呼び出しを行いますか(ディレクトリ一覧を取得するなど)。または、ファイルの内容、属性などの追加情報を取得するために、ファイルごとに1回以上の呼び出しを行いますか?
  • 上記の質問に対する回答が異なる場合(「TMがXXXを実行する場合があり、YYYを実行する」など)、TMがフォルダー内の変更されていない各ファイルに対して多くのファイルシステム呼び出しを行う理由は何ですか?

High Sierraを実行している2015年後半のMacBook Proで遅いTime Machineの増分バックアップを診断しようとしているので、私は尋ねています。「毎時」のバックアップは、毎回バックアップされるデータ量が2GB未満であっても、30分以上かかります。

タイムマシンのディスクアクティビティのログ(を使用sudo fs_usage -f filesys backupd)を見ると、原因は、Outlook 2016 Macに関連付けられた未変更のメッセージファイルと添付ファイルのファイルシステムアクセスであるようです。

Outlookは、メッセージ用に256個のフォルダーと添付ファイル用に256個のフォルダーを作成し、これらのフォルダー間で新しいメッセージと添付ファイルを均等に配布します。たとえば、私のOutlookプロファイルには約25万のメッセージがあり、そのほとんどに1+の添付ファイルがあります。これらの512個のフォルダーにはそれぞれ、約1,000個のメッセージが含まれています。1日に約500件の新しいメッセージが届くため、最後のバックアップから1日が経過した場合、これらの512個のフォルダーにはそれぞれ1〜3個の新しいファイルと約1,000個の未変更のファイルがあります。

ファイルシステムログを見ると、Time Machineは各ファイルに対して多くのファイルシステムコールを行っていますが、これらのフォルダー内の500,000以上のファイルのうち数百のファイルのみが変更されています。変更されていない各ファイルのファイルシステムへのアクセスは高速です(以下のログの抜粋例では〜0.075秒)が、0.075秒に500Kファイルを掛けると、10時間以上かかります!Time Machineは複数のスレッドを実行するため、各増分バックアップは10時間かかりませんが、代わりに「毎時」バックアップごとに30分以上かかります。

1時間ごとに500,000以上のファイルを見るために、変更されていないバッテリー使用量とディスクアクセスが大量にあります。私が使用した後の 30分以上がTM速度であることに注意してくださいsudo sysctl debug.lowpri_throttle_enabled=0。この変更がなければ、さらに遅くなります。

私は問題の根本原因を解明しようとしています:

  • コンピューターの構成はどうですか?ファイルやTime Machineの設定などに変更を加えることで、TMがすべての増分バックアップで変更されていないファイルの調査に時間を費やすのをやめることがありますか?
  • 問題はOutlook 2016 Macがメッセージと添付ファイルを保存する方法の基本であるため、大きくアクティブなメールボックスを持つOutlookのすべてのMacユーザーはこの問題を抱えていますか?たとえば、Outlookは、TMが多くの小さなファイルを作成する他のアプリと比較してOutlookのファイルを調べるのに余分な時間を費やす原因となる属性を使用して異常なことをしますか?
  • または、Time Machineの設計の根本的な原因は、フォルダ内のファイルが変更された場合、TMが各ファイルに対して比較的高価なファイルシステム呼び出しを行い、どのファイルが変更されたかを確認することです

これは、Time Machineが変更されていない各ファイルに対して多くのファイルシステムアクセスを実行していることを示唆する(最後のバックアップ以降に変更されていない単一ファイルの)ログサンプルです。すでにバックアップされており、最後のバックアップ以降変更されていないこの901バイトのファイルに対して、11(!!!)のファイルシステムアクセスをカウントします。

09:14:19.783112  getattrlist                            .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.000027   backupd.944294
09:14:19.783424  fsctl                                  .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.000006   backupd.944294
09:14:19.783428  fsctl                                  .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.000004   backupd.944294
09:14:19.783542  getattrlist                            .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.000057   backupd.944294
09:14:19.783603  listxattr                              .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.000016   backupd.944294
09:14:19.783612  listxattr                              .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.000008   backupd.944294
09:14:19.805903  listxattr                              .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.022290   backupd.944294
09:14:19.806028  listxattr                              .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.000109   backupd.944294
09:14:19.856232    HFS_update               (__M__c__)  .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.000013   backupd.948297
09:14:19.856258  link                                   .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.050019   backupd.948297
09:14:19.856394  getattrlist                            .Office/Outlook/Outlook 15 Profiles/2018-05-11/Data/Message Attachments/137/8969C57E-7F6D-4152-AF11-FDF535486C92.olk15MsgAttachment    0.000051   backupd.948297

Time MachineバックアップからOutlookフォルダーを除外できることは知っていますが、メッセージを復元できない可能性があるため、これを行うことにheしています。

私はすでにFSEventsログを削除して(sudo mv /.fseventsd /.fseventsd.bak再起動して)、再作成できるようにしました。これにより、バックアップがかなり高速化され、最後のバックアップ以降にOutlookを起動していない場合に数分しかかかりません。しかし、Outlookを実行した後、バックアップには30分以上かかります。ログを見て、余分な時間がバックアップデータボリュームによるものではないことを確認しました。1.3GB Outlook.sqlliteファイルは毎回1〜2分でバックアップされますが、代わりに100,000個のファイルが原因であるようです。 Time Machineは見ているが、バックアップはしていない。

ネットワークの問題でも、バックアップNASドライブの速度の問題でもありません。TMが大きなファイルをバックアップしているとき、WiFiを介して毎秒10〜30メガバイトをバックアップします(高速WiFiです!)。また、TMがこれらすべての小さなOutlookファイルを駆け巡っているとき、ギガビットイーサネットに直接接続しても速度は向上しません。

更新:

Monomeethが以下の回答でアドバイスしたように、Time Machine Mechanic(本当に役立つツール!)をダウンロードして実行しました。過去12時間の出力は次のとおりです。

Analysis from 2018-05-23 19:38:58 +0000 to 2018-05-24 05:38:58 +0000 for 10 hours:
Backing up to /dev/disk2s2: /Volumes/Time Machine Backups/Backups.backupdb
on which there were 411.74 GB, 411.74 GB, 411.74 GB, 411.74 GB, 411.74 GB, 411.74 GB available.
Started 6 auto backups, and 0 manual backups; completed 7 backups successfully,
last backup completed successfully 7.0 minutes ago,
backed up a total of 16417 files, range 639 to 4666 in each backup,
total data for each backup was 2.09 GB, 2.1 GB, 1.89 GB, 1.58 GB, 1.66 GB, 1.59 GB, 1.54 GB.
Times taken for each auto backup were 93.8, 37.8, 29.8, 34.4, 35.4, 87.6 minutes,
intervals between the start of each auto backup were 140.5, 70.8, 63.4, 69.9, 65.9 minutes.
Created 0 new backups, and deleted 7 old backups,
cancelled 4 backups.
7 errors reported:
2018-05-23 13:27:42.967395-0700 Error: Error Domain=NSOSStatusErrorDomain Code=-50 "paramErr: error in user parameter list" deleting backup: /Volumes/Time Machine Backups/Backups.backupdb/Justin’s MacBook Pro/2018-05-23-113921.inProgress/B14EC326-8AE7-4C23-8F37-17BDEFCF9F1C
2018-05-23 20:33:49.535143-0700 Error: Error Domain=NSOSStatusErrorDomain Code=-36 "ioErr: I/O error (bummers)" deleting backup: /Volumes/Time Machine Backups/Backups.backupdb/Justin’s MacBook Pro/2018-05-21-163447
2018-05-23 20:33:49.536821-0700 Error: Error Domain=NSOSStatusErrorDomain Code=-50 "paramErr: error in user parameter list" deleting backup: /Volumes/Time Machine Backups/Backups.backupdb/Justin’s MacBook Pro/2018-05-22-193257
2018-05-23 20:33:49.536960-0700 Error: Error Domain=NSOSStatusErrorDomain Code=-50 "paramErr: error in user parameter list" deleting backup: /Volumes/Time Machine Backups/Backups.backupdb/Justin’s MacBook Pro/2018-05-22-183736
2018-05-23 20:33:49.537620-0700 Error: Error Domain=NSOSStatusErrorDomain Code=-50 "paramErr: error in user parameter list" deleting backup: /Volumes/Time Machine Backups/Backups.backupdb/Justin’s MacBook Pro/2018-05-22-150607
2018-05-23 20:33:49.537704-0700 Error: Error Domain=NSOSStatusErrorDomain Code=-50 "paramErr: error in user parameter list" deleting backup: /Volumes/Time Machine Backups/Backups.backupdb/Justin’s MacBook Pro/2018-05-22-134626
2018-05-23 20:33:49.539118-0700 Error: Error Domain=NSOSStatusErrorDomain Code=-50 "paramErr: error in user parameter list" deleting backup: /Volumes/Time Machine Backups/Backups.backupdb/Justin’s MacBook Pro/2018-05-22-120245

ディープスキャンは行われず、各バックアップは1.5〜2 GBをバックアップするのに最低30分かかりました。サイズの大部分は1.3GBの単一のOutlook.sqlliteファイルで、ファイルシステムログに従って約2分でバックアップされ、約10メガバイト/秒で動作します。しかし、ほとんどの時間は(ここでもファイルシステムのログによると)変更されていない100,000個のファイルを読み取り/チェックすることによって費やされます。

これは正常ですか?TMが(FSEventsを介して)どのファイルが変更されたかを知っているが、それでもすべてのファイルを調べる必要があるのは予想外のようです。Outlookのファイルで異常が発生し、Outlookのファイルでは発生するが、他のアプリケーションのファイルでは発生しない異常がありますか?Outlookが拡張属性(たとえば、電子メールメッセージファイルの "作成者"および "受信者"属性)を使用しており、これらの属性が速度低下の原因となっている可能性がありますか?

エラーをどうすればよいかわかりませんが、バックアップの削除に関するものです。おそらく、それは遅いバックアップとは無関係の問題でしょうか?

回答:


2

短い答え

はい、これは予想される動作です。

Time Machineは、新規または変更されたデータのみをバックアップし、削除されたデータの記録を保持します。これは、数十のファイルの何千ものを含めることができライブラリ(例えば、あなたの写真ライブラリ)と、そのような、そのようなMS Outlookによって使用されるものなどのファイル()を大量に含むディレクトリ/フォルダなどの他の場所を(含まれています。それはないないの新鮮なバックアップを行いますライブラリ/フォルダ全体を変更するたびに変更されますが、変更されたアイテムのみをバックアップします。TimeMachineが適切にこれを行うには、すべてのアイテムをチェックして、最後のバックアップ以降に変更されたものを判断する必要があります。

長い答え

Time Machineの仕組みは、前回のバックアップ以降に変更されたものをすべてバックアップすることです。たとえば、次のファイル:

  • 最後のバックアップが次のバックアップで再度バックアップされてから編集
  • 作成された最後のバックアップがされているので、バックアップ次回のバックアップで
  • 最後のバックアップが次のバックアップに含まれていないため削除さました(つまり、そのバックアップには記録がありませんが、ファイル自体はそれが含まれていた古いバックアップのためにまだ保存されています)

現在、混乱は通常、Time Machineが実際にバックアップを行う方法に起因しています。これを以下で説明します。

  1. TMが新しいバックアップドライブで行う最初のバックアップは、Macの完全バックアップです。そのため、お使いのMacで80 GBの1 TBドライブを使用している場合、最初のバックアップは新しいバックアップドライブで80 GBのスペースを占有します。
  2. 残りのすべての増分バックアップは、完全バックアップを行いません。代わりに、TMは新しいデータ(つまり、新しく追加されたデータ編集されたデータ)をバックアップし、削除されたデータの記録を保持します
  3. パッケージ(写真ライブラリパッケージなど)などのファイルの場合、TMは以下を識別します。
    • 新しいデータ(たとえば、フォトライブラリパッケージのマスターフォルダー内の新しい写真)とこれをバックアップします
    • フォトライブラリパッケージ内の変更されたデータ(編集された写真など)とバックアップ
    • フォトライブラリパッケージ内の削除されたデータ(削除した写真など)と変更の記録を保持する
  4. バックアップドライブの容量がなくなると、TMは次のバックアップを実行するために必要な最も古いバックアップをすべて削除します(これは、ユーザーが最新のバックアップの一部ではないデータを失う可能性がある場所です)
  5. 最初の完全バックアップであるか増分バックアップであるかに関係なく、TMはユーザーにこれをすべて個別の完全バックアップであるかのように表示します。これは、ユーザーエクスペリエンス(UX)設計に基づいて設計されているため、ユーザーはデータを簡単に参照および検索でき、すべてが揃っていることをユーザーに安心させます。Appleによると:

このプロセス全体は、Time Machineがデータをバックアップするだけでなく、特定の時点でどのように見えたかを記憶し、ユーザーが探しているものを見つけやすくするように設計されています。Appleによると:

... Time Machineが他のバックアップアプリケーションと異なるのは、すべてのファイルのスペアコピーを保持するだけでなく、特定の日にシステムがどのように見えたかを覚えているため、過去のMacを再訪できることです。

出典:Mac Basics:Time Machine(AppleナレッジベースドキュメントのWebアーカイブ)

はい、これは予想される動作です。あなたの質問の例を使用すると、カウントしているインスタンスは11個ありますが、それらすべてを組み合わせると、Time Machineが処理するのに1秒未満の時間がかかりました。マシンが提供しています。

一言で言えば、私はそれに干渉しようとすることはお勧めしません。

[更新]

この更新は、上記の高レベルの情報に優先するものではありませんが、OPの質問に対する改訂により、質問に関するさらなるコンテキストが提供されるため、さらに明確になります。

ご存知のように、Time Machineは各ボリュームに保存されているファイルシステムイベント(FSEvents)データベースをチェックして、最後のバックアップ以降に変更されたファイルを識別します。

ただし、FSEventsデータベースが見つからない場合、またはTime Machineが破損または不完全であると判断した場合、ディープスキャンが実行されます。ディープスキャンを実行する場合、これは関連するボリューム上すべてのファイル(およびディレクトリ)の最終変更タイムスタンプをチェックすることを意味します。このディープスキャンの一部として、Time Machineは最後のバックアップ以降に変更されたすべてのアイテムのリストを作成します。明らかに、リモートデバイスにバックアップしている場合(特にWi-Fiを使用している場合)、これは非常に遅くなります。

ボリュームのFSEvent記録を無効にすることはできます、Time Machineを使用してデータをバックアップしたいので、これは役に立ちません。このアクションは、強制的にディープスキャンを実行するだけです。

追加した情報に照らして、次の2つの決定事項があります。

  1. Time Machineは、バックアップを実行するたびにディープスキャンを実行していますか?
  2. もしそうなら、なぜそれをしているのですか?

最初の質問に答えるために、Time Machine Mechanic(T2M2)をダウンロードしてインストールできます。これにより、ログが分析され、Time Machineバックアップが正常に実行されているかどうかが確認されます。

あなたの場合の重要なことは、T2M2が以下を示しているかどうかを確認することです。

started 1 deep traversal scans

completed 1 deep traversal scans

上記のツールを使用して、Time Machineが実際にディープスキャンを実行していることを示している場合、これが懸念の原因である可能性があります。これは特定のイベント(たとえば、別のボリュームから最近起動した、完全な復元後、電源喪失後など)の後に発生する可能性があるため、それほど頻繁ではありませんが、常に発生している場合はそうです警報ベルを鳴らします。その場合は、Time Machine-一般的なバックアップメッセージのトラブルシューティングを参照してください。


こんにちは@Monomeeth-答えてくれてありがとう。実際、フォルダ内のどのファイルが変更されたかをTime Machineが判断する方法について、より詳細な技術情報を探していました。私が探しているものを明確にするために質問を更新しました。私が直面している問題は、TMがバックアップしすぎるデータではなく、TMがどのファイルが変更されたかを判断するのに時間がかかりすぎることです。変更されていないファイルあたり0.075秒と500,000個の変更されていないファイルは10時間以上です。マルチスレッドの場合でも、「1時間ごと」のバックアップにはまだ30分以上かかります。そして、大量のバッテリーが無駄になります。私は物事をスピードアップできるかどうかを把握しようとしています。
ジャスティングラント

@JustinGrant最初にAPFSスナップショットを作成し、次にファイル属性を調べます。FSEventに依存していないと思います。
mspasov

@mspasov-おかしい、私は別のAsk Differentの答えのために別のバックアップソリューションからTime Machineに切り替えました:「10.7(Lion)macOSはFSEventsと呼ばれるメカニズムを提供します。 Time MachineはFSEventsを使用します。」 apple.stackexchange.com/a/323718/61097 マットの答えは間違っていますか?それとも、APFS上のTMは、古いファイルシステム上のTMとは異なる動作をする(FSEventsではなくスナップショットを使用する)だけですか?
ジャスティングラント

申し訳ありません私が間違っています。TMはfseventdデータベースを使用して変更内容を検索し、データベースが利用できない場合、変更をスキャンします(ただし、バックアップはfseventsデバイスからのライブfseventイベントを使用しません)。
mspasov

@JustinGrant返信の遅延についておApび申し上げます。一部のメッセージに追いつくのに予想以上に時間がかかりました。回答を更新しました-追加できるものがあればお知らせください。
モノミース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.