Supponiamo che io abbia un dispositivo IoT, controllato dalla ditta A, che compra una serie di servizi dalla ditta B. Sarò responsabile di tutte le spese, anche se non avevo idea che la ditta A avrebbe fatto questi acquisti per mio conto.
Nel fine settimana, ho scoperto di avere un tale dispositivo e che il denaro a rischio non è banale. Un processo in background chiamato nsurlsessiond che Apple utilizza per gestire i servizi iCloud ha scaricato 400 GB (sì, GIGA e sì BYTES) di dati sul mio iMac nel corso di 31 ore. Apple rende molto difficile vedere o capire cosa sta facendo questo processo. Quindi, in effetti, ha trasformato il mio iMac in un apparecchio IoT che bruciava la larghezza di banda.
Ho capito che c’era un problema solo perché ho passato un po’ di tempo a lavorare in remoto sul mio Macbook, usando la connessione 4G del mio iPad a internet. Anch’esso era stato trasformato in uno di questi apparecchi IoT, così ho presto ricevuto un avviso dal mio ISP che diceva che avevo già superato la mia intera assegnazione mensile di 20 GB di dati scaricati via wireless. Ho smesso di connettermi via 4G non appena ho potuto, ma mi sono comunque ritrovato con 75 dollari di spese per dati in eccesso.
Quando sono tornato a casa, ho controllato il mio iMac. Non riuscivo a trovare un modo per ottenere le informazioni di cui avevo bisogno per capire cosa stava succedendo dal monitor di attività integrato. Fortunatamente, ho anche un programma chiamato Little Snitch che controlla il traffico di rete. Il suo rapporto su nsurlsessiond ha mostrato questo:
Per quantificare le responsabilità qui, se questo download fosse stato sulla mia connessione 4G, la tariffa di overage del mio ISP di $15 per GB, moltiplicata per 400 GB di dati, comporterebbe $6000 in spese di dati. La mia connessione a casa non ha un limite di dati, ma non tutti hanno questa protezione. Il tecnico della Apple ha detto che se dovessi affrontare grandi spese, a volte funziona chiamare l’ISP e implorare pietà.
Apple e il mio ISP hanno una relazione a lungo termine. Insieme, hanno un interesse comune a farmi usare molti più dati che l’ISP può far pagare. Il mio ISP può ricompensare Apple incoraggiando le vendite di dispositivi mobili Apple.
Presumibilmente, i due vorrebbero evitare un picco di utilizzo come quello che ho affrontato io. È stato sicuramente causato da un bug. Ma è significativo che Apple ha configurato le cose in modo che per impostazione predefinita non ho visibilità sull’utilizzo dei dati in background e senza alcun acceleratore o tappo che potrebbe limitare il danno potenziale che quando le cose vanno fuori controllo.
Se si deve pagare per i dati, essere molto attenti a utilizzare iCloud. E preparatevi a molte sorprese dall’IoT.
Per chiunque affronti un problema simile con nsurlsessiond
Sommario
-
Se avete bisogno di una soluzione temporanea che fermi i massicci download di dati, un’opzione è quella di installare Little Snitch e aggiungere una regola che è possibile attivare e disattivare che nega qualsiasi connessione in uscita a nsurlsessiond. Anche se questo ferma solo le richieste in uscita, ma questo sembra essere necessario per sostenere i download in entrata.
-
Per ottenere una soluzione permanente, ho dovuto smettere di usare iCloud interamente. Ho cancellato tutti i dati da iDrive e ho cancellato tutti i dati dall’unica applicazione (Notability) che aveva il permesso di memorizzare i dati in iCloud.
-
Se, come me, avete un problema che è un vero bug, non una caratteristica integrata di Photos – enormi trasferimenti di dati se avete una grande libreria di foto e accettate di usare Photos con iCloud – dovrete spendere molto tempo e fatica con il supporto tecnico Apple per convincerli che Photos non è la fonte del vostro problema.
Dettagli
1. nsurlsessiondCi sono molti rapporti di utenti che si sono ritrovati con enormi download che non avevano previsto. Molti dei rapporti degli utenti più tecnici identificano nsurlsessiond come il processo che effettua il download. Molti di questi sono apparentemente il risultato di impostazioni predefinite e di un’interfaccia fuorviante che porta le persone ad accettare di memorizzare grandi quantità di dati fotografici in iCloud senza rendersi conto delle conseguenze di questa decisione. Sono stato attento a non far usare iCloud a nessuna delle applicazioni di Apple. Per fare questo, ho dovuto cambiare le impostazioni predefinite per iCloud, che attivano le applicazioni Apple.
2. iCloud DriveCome parte di iCloud, ho usato iDrive, che mi permette di avere parte del mio file system nel cloud. Posso vedere questi file nel Finder sotto iCloud Drive. Questo si comporta come Dropbox o Google Drive, ma con una differenza cruciale. Non ho alcun controllo sul processo di sincronizzazione con l’archivio locale dei dati. Se iDrive è acceso, un processo in background (probabilmente nsurlsessiond ma potrebbero essercene altri) sincronizza i file su iDrive con una cache sulla mia macchina. Avevo circa 30 GB di dati su iDrive.
3. Lasciare che un’applicazione usi iCloudLascio solo un’applicazione (Notability) memorizzare i suoi dati in iCloud. Questa applicazione funziona sia su dispositivi IOS che su OSX. Sotto OSX, anche questo comporta una sincronizzazione tra i dati memorizzati nel cloud e una cache locale. La differenza è che, come ci si potrebbe aspettare dal mondo IOS, i file non sono visibili tramite il Finder. Quando ho controllato iCloud sotto Preferenze di Sistema, ho potuto vedere che Notability stava memorizzando circa 3 GB su iCloud. (Questo è molto più di quanto Notability sembra progettato per gestire. Questa grande quantità di dati è emersa in parte perché su un dispositivo IOS, Notability duplica ogni nota se si spegne e riaccende l’accesso a iCloud. Apparentemente, spegnerlo trasforma la cache locale in un archivio dati locale permanente. Poi, se si riaccende iCloud, Notability scarica un’altra copia di ogni nota da iCloud e la mette in una nuova cache. Mentre cercavo di risolvere i problemi con Notability, mi sono ritrovato con 4 copie di ogni nota.)
4. La fonte del mio problemaHo visto indicazioni di bug sia in Notability che in iDrive quindi non sono sicuro di cosa abbia causato i massicci download.
I file della cache sono sotto la Libreria utente, a cui si può accedere tramite Finder tenendo premuto il tasto opzione quando si clicca su Vai. Per vedere cosa sta succedendo nella Libreria, aiuta a selezionare Mostra opzioni di visualizzazione per Finder (dal menu Visualizza) e spuntare Calcola tutte le dimensioni in modo che Finder possa visualizzare le dimensioni di tutte le cartelle in una directory.
In Libreria, la cartella Documenti mobili sembra essere la cache per iDrive. Aveva la stessa quantità di dati, 30 GB, che ho originariamente caricato su iDrive.
Sospetto che Notability stesse mettendo in cache le informazioni in Library/Caches/CloudKit. In momenti diversi, questa cartella è finita con qualcosa tra i 5 e i 20 GB, che ovviamente è troppo rispetto ai 3 GB che Notability avrebbe dovuto gestire. Prendendo le due cose insieme, non c’è motivo per cui la sincronizzazione di un totale di 30+3 GB di dati dovrebbe richiedere 400 GB di download su una singola macchina. Qualcosa deve aver continuato a cercare, più e più volte, di realizzare qualcosa che non stava funzionando.
La grande cache in CloudKit ha suggerito che Notability fosse il problema. Ho provato a cancellare la cartella CloudKit e anche l’intera cartella Caches. Quando queste erano nel Cestino, erano ancora utilizzate da vari processi di sistema. Dopo un riavvio, a volte ho visto una grande cache riemergere sotto CloudKit troppo velocemente perché questo fosse il risultato di un download, quindi sospetto che gli stessi processi che avevano usato i file mentre erano nel Cestino li recuperassero in CloudKit dopo un riavvio. L’unico modo che ho trovato per prevenire questo è stato i) spegnere la mia connessione internet, ii) cancellare la cartella CloudKit, iii) riavviare, iv) svuotare il cestino, v) riaccendere la mia connessione internet. Ma poi la cache di CloudKit sembrava continuare a ricostruirsi tramite un download. Questo sembrava continuare anche dopo aver cancellato tutti i miei dati da Notability. (A posteriori, avrei dovuto provare a cancellare questa cache sia dal mio iMac che dal mio MacBook per escludere la possibilità che la cache su una macchina cercasse di ricostruire la cache sull’altra.)
I miei problemi si sono risolti solo dopo aver cancellato anche tutti i miei dati da iDrive, facendolo su ogni macchina e per ogni utente con accesso a iDrive. Lungo la strada, ho anche provato più volte a cancellare la cartella della cache di CloudKit. (Ora ha pochissimi dati.)
Il mio intuito è che Notability fosse il colpevole, ma è possibile che anche iDrive stesse usando la cache di CloudKit in qualche modo e che fosse la vera fonte del problema; o che ci sia qualche interazione tra Notability e iDrive; o che ci sia stato un ritardo o un’interazione tra le cache sulle due macchine in modo che sbarazzarsi dei dati di Notability abbia risolto il problema ma questo non si sia manifestato fino a quando non ho eliminato tutti i dati da iDrive; o …
.