Questa non è una risposta completa, in quanto non sono sicuro che esista un metodo per forzare o altrimenti togliere i limiti ai caricamenti. Tuttavia, potrebbe essere utile per alcuni essere in grado di capire meglio cosa sta succedendo durante i caricamenti. Credo che ci siano alcuni casi in cui il sistema Photos modificherà alcuni parametri di come si sta caricando, ma non può dire per certo le ragioni o i modi per influenzarlo (si spera che qualcuno possa modificarlo in futuro se raccolgono più informazioni!) .
A partire da Sierra (macOS 10.12), il modo per vedere i registri per il sistema di libreria di foto di iCloud è il seguente (è possibile ottenere qualcosa di simile anche nell'app Console):
log show --last 1h --style syslog --predicate '(subsystem beginswith[cd] "com.apple.photos.cpl")'
log stream --style syslog --predicate '(subsystem beginswith[cd] "com.apple.photos.cpl")'
Il primo comando sopra mostrerà l'ultimo 1ora di log, il secondo eseguirà lo streaming di nuovi log dal momento in cui viene eseguito. Si può ottenere un output lungo le linee di seguito (questo è style = compact, syslog potrebbe essere più facile da leggere però)
2017-12-18 14:02:42.541 Df cloudphotosd[373:2205bf] [com.apple.photos.cpl:engine.scheduler] Client has put some changes in push repository
2017-12-18 14:02:42.541 Df cloudphotosd[373:2205bf] [com.apple.photos.cpl:engine.scheduler] We are asked to schedule a sync session from CPLEngineSyncManagerStatePush
2017-12-18 14:02:52.924 Df cloudphotosd[373:221956] [com.apple.photos.cpl:engine.scheduler] Notified that Server has changes to be pulled
2017-12-18 14:02:52.924 Df cloudphotosd[373:221956] [com.apple.photos.cpl:engine.scheduler] We are in the middle of CPLEngineSyncManagerStatePush and requested CPLEngineSyncManagerStatePull will happen later in the sync session.
2017-12-18 14:02:52.925 Df cloudphotosd[373:221837] [com.apple.photos.cpl:engine.sync.pushtotransport] Transport successfully uploaded in 72.56s (48 resources uploaded): <private>
2017-12-18 14:02:52.941 Df cloudphotosd[373:221a88] [com.apple.photos.cpl:engine.scheduler] Notified that Server has changes to be pulled
2017-12-18 14:02:52.941 Df cloudphotosd[373:221a88] [com.apple.photos.cpl:engine.scheduler] We are in the middle of CPLEngineSyncManagerStatePush and requested CPLEngineSyncManagerStatePull will happen later in the sync session.
2017-12-18 14:02:53.012 Df cloudphotosd[373:221837] [com.apple.photos.cpl:engine.scheduler] Informing transport of significant work ending
2017-12-18 14:02:53.012 Df cloudphotosd[373:221837] [com.apple.photos.cpl:engine.transport.cloudkit] Setting significant work not pending, had been set for 11.69s
2017-12-18 14:04:01.865 Df cloudphotosd[373:221956] [com.apple.photos.cpl:engine.scheduler] Notified that Server has changes to be pulled
2017-12-18 14:04:01.866 Df cloudphotosd[373:221956] [com.apple.photos.cpl:engine.scheduler] We are in the middle of CPLEngineSyncManagerStatePush and requested CPLEngineSyncManagerStatePull will happen later in the sync session.
Questi comandi di registro raccolgono tutti i log com.apple.photos.cpl
(Libreria di foto cloud); potresti voler limitare ulteriormente a una particolare "categoria", ad es. solo il motore di sincronizzazione:
log show --last 1h --style compact --predicate '(subsystem beginswith[cd] "com.apple.photos.cpl") && (category beginswith[cd] "engine.sync")'
Che mostrerà solo i messaggi di trasporto collettivo:
2017-12-18 13:13:31.427 Df cloudphotosd[373:20ff1e] [com.apple.photos.cpl:engine.sync.pushtotransport] Transport successfully uploaded in 37.62s (40 resources uploaded): <private>
2017-12-18 13:15:12.093 Df cloudphotosd[373:21009e] [com.apple.photos.cpl:engine.sync.pushtotransport] Transport successfully uploaded in 100.20s (40 resources uploaded): <private>
2017-12-18 13:18:50.131 Df cloudphotosd[373:210ec1] [com.apple.photos.cpl:engine.sync.pushtotransport] Transport successfully uploaded in 152.81s (44 resources uploaded): <private>
2017-12-18 13:19:22.753 Df cloudphotosd[373:2126dc] [com.apple.photos.cpl:engine.sync.pushtotransport] Transport successfully uploaded in 32.26s (44 resources uploaded): <private>
2017-12-18 13:19:56.137 Df cloudphotosd[373:212866] [com.apple.photos.cpl:engine.sync.pushtotransport] Transport successfully uploaded in 33.00s (60 resources uploaded): <private>
2017-12-18 13:20:32.789 Df cloudphotosd[373:212a7c] [com.apple.photos.cpl:engine.sync.pushtotransport] Transport successfully uploaded in 36.22s (44 resources uploaded): <private>
Mostra quante risorse (foto o video?) sono caricate in ogni "pezzo" e puoi vedere quanto tempo è trascorso tra di loro. Devo ancora trovare un metodo particolare dietro a come sceglie la dimensione del pezzo, o il ritardo tra di loro, ma sembrano aver variato per me in diversi momenti della giornata, e se sto usando il computer / Foto oppure no (anche se questo potrebbe facilmente essere dovuto ad un uso di altra larghezza di banda). Sospetto che il numero di risorse sia effettivamente foto / video, perché ci sono anche molti eventi engine.sync.pushtotransport
con 0 risorse che impiegano meno di un secondo, che sospetto siano la sincronizzazione di volti, album, ecc (almeno, da High Sierra, ora i volti sono sincronizzati con la libreria di foto di iCloud).
Possono essere selezionati con una dimensione minima del blocco o in base alla dimensione dei "blocchi" caricati correttamente. La mia ipotesi è che vengano selezionati per circa 30 secondi (in base alle recenti velocità di caricamento del chunk), poiché la maggior parte dei miei sono almeno 30 secondi (e la distribuzione dei tempi sembra vagamente Poisson, sebbene non l'abbia programmata per testare) . Una cosa particolare che ho notato nei log sono i messaggi relativi all'app Foto stessa aperta / chiusa (o in primo piano / in background):
2017-12-18 14:33:13.367 Df cloudphotosd[373:22a51f] [com.apple.photos.cpl:engine.foreground] Client is in foreground
2017-12-18 14:33:13.367 Df cloudphotosd[373:22a51f] [com.apple.photos.cpl:engine.scheduler] Some client is in foreground, current required state is CPLEngineSyncManagerStatePush
2017-12-18 14:33:18.517 Df cloudphotosd[373:2299dd] [com.apple.photos.cpl:engine.foreground] Client is in background
Il fatto che questo sia registrato mi suggerisce che il motore di sincronizzazione lo considera nel suo algoritmo per sincronizzare le foto, ad es. può ridurre / rallentare l'attività di sincronizzazione quando l'app Foto è aperta o in primo piano (probabilmente per garantire un'esperienza utente migliore). Questo è certamente il caso per l'analisi di faccia / scena (vengono fermati / rallentati mentre Photos è in primo piano / aperto), quindi potrebbe essere un po 'più veloce per uscire da Photos. Detto questo, i messaggi non sono particolarmente illuminanti e non aumenteranno al massimo la larghezza di banda in upload quando eseguirò questa operazione.
Mi dispiace che questo non risponda alla domanda in un modo completamente utile, ma almeno potrebbe aiutare a capire le situazioni in cui i caricamenti sono completati più velocemente o più lentamente, anche se Apple non fornisce comandi o impostazioni a "forza" o de-throttle i caricamenti.
Più speculativamente, mi chiedo se ci siano impostazioni sysctl
non documentate come quella per Time Machine per abilitare / disabilitare la limitazione di determinate funzioni della libreria iCloud.