Time Machine (APFS'li Yüksek Sierra MacBook Pro'da) bir klasördeki hangi dosyaların son yedeklemeden bu yana değiştiğini nasıl biliyor? TM'nin değiştirilmiş dosya (lar) içeren dizinleri izlemek için FSEvents'e güvendiğini biliyorum . Bilmiyorum, bir klasördeki 1+ dosyanın değiştiğini öğrendiğinde TM'nin yaptığı şeydir. Time Machine'in kendisi hakkında üst düzey bir bilgi değil, ayrıntılı bir teknik açıklama arıyorum. özellikle:
- TM, hangi dosyaların son yedek sürümle aynı olduğunu belirlemek için her dosya hakkında (örneğin, değiştirilen 1 dosya ve son yedeklemeden bu yana 999 dosya değiştirilmemiş bir klasörde) hangi bilgileri kullanır? TM sadece dosya boyutu ve değiştirme zamanına bakar mı? Aslında dosya içeriğini okuyor mu? Dosya özelliklerini okuyor mu?
- Time Machine, hangi dosyaların değiştiğini kontrol etmek için hangi dosya sistemi API çağrısını kullanır? Spesifik olarak, örneğin, bir dizin listesi getirmek için, klasör başına bir (veya az sayıda) çağrı yapıyor mu? Yoksa dosya içeriği, öznitelikler, vs. gibi ek bilgileri çekmek için dosya başına 1+ çağrı mı yapacak ?
- Yukarıdaki soruların cevapları değişiyorsa (örneğin, "bazen TM XXX, bazen YYY olur"), o zaman TM'nin bir klasördeki değişmeyen her dosya için birçok dosya sistemi çağrısı yapmasının nedenleri nelerdir?
Soruyorum çünkü 2015 yılının sonlarındaki MacBook Pro'mda High Sierra çalıştıran yavaş Time Machine artımlı yedeklemelerini teşhis etmeye çalışıyorum. Her "saatlik" yedeklemenin tamamlanması, her seferinde yedeklenen veri miktarı 2 GB'ın altında olsa da tamamlanması 30 dakika sürer.
Time Machine disk etkinliğinin kayıtlarını inceleyen (kullanan sudo fs_usage -f filesys backupd
), suçlu, Outlook 2016 Mac ile ilişkili değişmemiş mesaj ve ek dosyalarına dosya sistemi erişimi gibi görünüyor.
Outlook, iletiler için 256 klasör ve ekler için 256 klasör oluşturur ve yeni klasörleri ve ekleri eşit olarak bu klasörler arasında dağıtır. Örneğin, Outlook profilimde çoğu 1+ eki olan yaklaşık 250K ileti var. Bu 512 klasörün her biri yaklaşık 1.000 mesaj içerir. Günde yaklaşık 500 yeni mesaj alıyorum, bu nedenle son yedeklememden bu yana bir gün geçmişse, bu 512 klasörün her birinde 1-3 yeni dosya ve yaklaşık 1.000 tane değişmemiş dosya olacak.
Dosya sistemi günlüklerine bakıldığında, Time Machine her bir dosya için birçok dosya sistemi çağrısı yapıyor, ancak bu dosyalarda sadece 500.000 dosyadan birkaç yüz dosya değişti. Değişmeyen her bir dosya için dosya sistemi erişimi hızlıdır (aşağıdaki örnek günlükte ~ 0.075 saniye) ancak 0.075 saniye ile 500 bin dosyayı çarpın, 10 saatten fazla! Time Machine birden fazla iş parçacığı çalıştırır, böylece her artımlı yedekleme 10 saat sürer, ancak her "saatlik" yedekleme için 30+ dakika sürer.
Her saat değişmeyen 500.000'den fazla dosyaya bakmak için batarya kullanımı ve disk erişimi çok fazla. 30+ dakika kullandıktan sonra TM hızı olduğuna dikkat edin sudo sysctl debug.lowpri_throttle_enabled=0
. Bu değişiklik olmadan, daha yavaş.
Sorunun kök nedenini anlamaya çalışıyorum:
- Bilgisayarım böyle yapılandırılmış mı? Dosyalarımda, Time Machine ayarlarında vs. yapabileceğim bir değişiklik var mı? Bu, TM'nin her artan yedeklemedeki değişmemiş dosyaları inceleyerek çok fazla zaman harcamasına neden olacak mı?
- Sorun, Outlook 2016 Mac'in iletilerini ve ek dosyalarını nasıl depoladığı konusunda temel mi, bu nedenle büyük ve etkin bir posta kutusuna sahip her Outlook kullanıcısı bu soruna mı sahip olacak? Örneğin, Outlook, TM'nin çok sayıda küçük dosya oluşturan diğer uygulamalara kıyasla Outlook'un dosyalarını incelemek için fazladan zaman harcamasına neden olabilecek özelliklerle olağandışı bir şey yapıyor mu?
- Yoksa, bir klasördeki herhangi bir dosya değişmişse, TM'nin hangi dosyaların değiştiğini doğrulamak için her bir dosya için nispeten pahalı bir dosya sistemi çağrısı yapması beklenir.
İşte bir günlük örneği (son yedeklemeden bu yana değiştirilmemiş tek bir dosya için), Time Machine'in her değişmemiş dosya için çok fazla dosya sistemi erişimi yaptığını gösteriyor. Zaten yedeklenmiş olan ve son yedeklemeden bu yana değişmeyen bu 901 baytlık bir dosya için 11 (!!!) dosya sistemi erişimini sayıyorum.
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
Outlook klasörlerini Time Machine yedeklemelerinin dışında tutabileceğimi biliyorum, ancak iletileri geri yüklememi engelleyebileceği için bunu yapmakta tereddüt ediyorum.
FSEvents günlüklerini silmeyi çoktan denedim (yoluyla sudo mv /.fseventsd /.fseventsd.bak
ve yeniden başlatma yoluyla ) ve yeniden oluşturulmalarına izin verdim , bu da yedeklemeleri önemli ölçüde arttırdı , böylece yalnızca son yedeklemeden bu yana Outlook'u başlatmazsam birkaç dakika alacaklar. . Ancak Outlook'u çalıştırdıktan sonra yedeklemeler 30 dakika sürüyor. Ekstra zamanın yedek veri hacminden kaynaklanmadığını, yani 1.3GB Outlook.sqllite
dosya her seferinde 1-2 dakika içinde yedeklendiğini ve bunun yerine 100.000 dosyadan kaynaklandığı gözüküyor. Time Machine bakıyor, ancak desteklemiyor.
Bu bir ağ sorunu ya da yedek NAS sürücümün hız sorunu değil: TM büyük dosyaları yedeklerken, WiFi üzerinden saniyede 10-30 megabayt yedekler (WiFi hızlıyım!). Ayrıca, doğrudan gigabit ethernet ağına bağlanmak, TM tüm bu küçük Outlook dosyaları arasında çalkalanırken hızı arttırmaz.
GÜNCELLEME:
Tarafından tavsiye edildiği gibi Monomeeth aşağıda onun cevabını ben indirilen ve ran Zaman Makinesi Mechanic (gerçekten yararlı bir araç!). İşte son 12 saatin çıktısı.
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
Derin tarama olmadığına ve her yedeklemenin 1.5-2 GB yedeklemesinin minimum 30 dakika sürdüğünü unutmayın. Boyutun çoğu, yaklaşık 10 megabayt / sn değerinde çalışan dosya sistemi günlüklerine göre yaklaşık 2 dakikada yedeklenen tek 1.3 GB Outlook.sqllite dosyasıdır. Ancak çoğu zaman (yine de dosya sistem kayıtlarına göre) 100.000'in üzerinde değiştirilmemiş dosyayı okuyarak / kontrol ederek alınır.
Bu normal mi? TM'nin hangi dosyaların değiştiğini (FSEvents aracılığıyla) bilmesi beklenir, ancak yine de her dosyaya bakması gerekir. Outlook'un dosyaları hakkında Outlook'un dosyalarında olmasına rağmen diğer uygulamaların dosyalarında olmamasına neden olan olağandışı bir şey var mı? Outlook, genişletilmiş öznitelikler kullanıyor olabilir mi (ör. "Yazar" ve "Alıcı" e-posta mesajı dosyalarındaki öznitelikler) ve bu öznitelikler yavaşlamaya neden oluyor mu?
Hatalardan ne yapacağımdan emin değilim, ancak yedekleri silmekten bahsediyorlar. Belki de bu yavaş yedeklemelerimle ilgisiz bir konudur.