私が、企業 A によって制御される IoT デバイスを持っていて、企業 B から大量のサービスを購入しているとします。企業 A が私に代わってこれらの購入をしようとしていたことを私が知らなかったとしても、私はすべての請求に責任を負います。

週末に、私はそのようなデバイスを持っていて、危険にさらされるお金はつまらないものではないことを発見しました。 Apple が iCloud サービスを管理するために使用する nsurlsessiond というバックグラウンド プロセスが、31 時間かけて 400 GB (そう、GIGA、そう BYTES) ものデータを私の iMac にダウンロードしたのです。 Appleはこのプロセスが何をしているのか、見ることも理解することも非常に困難にしています。

私が問題があることを知ったのは、Macbook で iPad のインターネットへの 4G 接続を使用してリモートで作業していた時間があったからです。 iPad もこの IoT 家電の 1 つになっていたので、すぐに ISP から「ワイヤレスでダウンロードしたデータの月間割り当て 20 GB をすでにすべて超えている」という警告が表示されました。 4G での接続はすぐにやめましたが、それでも結局、75 ドルの超過データ料金が発生しました。

家に帰ってから、iMac をチェックしました。 内蔵のアクティビティ モニターから、何が起こっているのか把握するのに必要な情報を得る方法が見つかりませんでした。 幸いなことに、私はネットワーク トラフィックを監視する Little Snitch というプログラムも実行していました。 nsurlsessiond のレポートでは、次のように表示されました:

nsurlsessiond

このダウンロードが私の 4G 接続で行われた場合、私の ISP の超過料金である GB あたり 15 ドル、400 GB のデータで 6000 ドルのデータ料金を意味することになります。 私の自宅の接続にはデータ量の上限はありませんが、誰もがこのような保護を受けているわけではありません。 Apple の技術者は、もし私が多額の請求に直面したら、ISP に電話して慈悲を乞うのが効果的な場合もあると言いました。 彼らは共に、ISP が課金できるような多くのデータを私に使わせるという共同利益を持っているのです。 私の ISP は、Apple のモバイル機器の販売を促進することによって、Apple に報酬を与えることができます。

おそらく、彼ら 2 人は、私が直面したような使用量の注目を集めるスパイクを避けたいと考えているのでしょう。 それはきっと、バグが原因です。 しかし、Apple は、デフォルトで、バックグラウンドのデータ使用量に可視性を持たず、制御不能に陥ったときの潜在的な損害を制限するスロットルやキャップがないように物事を構成していることを物語っているのです。 そして、IoT からの驚きに備えてください。

nsurlsessiond で同様の問題に直面している人へ

まとめ

  1. 大量のデータ ダウンロードを停止する一時的な修正が必要な場合、Little Snitch をインストールして、nsurlsessiond への出力接続を拒否するルールをオン/オフすることも一つの選択肢になります。 これは発信要求を停止するだけですが、受信ダウンロードを維持するために必要なようです。

  2. 永久的な修正を得るために、私は iCloud の使用を完全に停止する必要がありました。 iDrive からすべてのデータを削除し、iCloud にデータを保存する許可を得た 1 つのアプリケーション (Notability) からすべてのデータを削除しました。

  3. 私のように、写真に組み込まれた機能ではなく、真のバグである問題がある場合、つまり大きな写真ライブラリを持っていて iCloud で写真を使うことに合意した場合、大きなデータ転送がある場合、写真が問題の原因ではないことを Apple Tech Support で納得させるには多くの時間や努力が必要でしょう。

Details

1. nsurlsessiond 予期しない巨大なダウンロードを行ったユーザーの報告が多数寄せられています。 より技術的なユーザーからのレポートの多くは、ダウンロードを行うプロセスとして nsurlsessiond を特定しています。 これらの多くは、デフォルトと誤解を招くようなインターフェースのせいで、この決定がもたらす結果を理解せずに、iCloudに大量の写真データを保存することに同意させられてしまったようです。 私は、AppleのどのアプリケーションもiCloudを使用させないように注意しました。 そのためには、Apple のアプリケーションをオンにする iCloud のデフォルトを変更する必要がありました。

2. iCloud DriveiCloud の一部として、私は iDrive を使用しています。 FinderのiCloud Driveの下にこれらのファイルを見ることができます。 これはDropboxやGoogle Driveと同じように動作しますが、決定的な違いが1つあります。 ローカルに保存されているデータとの同期処理は、自分ではコントロールできない。 iDriveがオンになっていると、バックグラウンドプロセス(おそらくnsurlsessiondだが、他にもあるかもしれない)がiDrive上のファイルを私のマシン上のキャッシュと同期させるのだ。 iDrive には約 30 GB のデータがありました。

3. アプリに iCloud を使用させる1 つのアプリ (Notability) だけに、そのデータを iCloud に保存させました。 このアプリは、IOSデバイスとOSXの両方で動作します。 OSXでは、これもクラウドに保存されたデータとローカルキャッシュの同期が行われます。 違うのは、さすがにIOSの世界では、Finderでファイルが見えないことだ。 システム環境設定のiCloudを確認すると、Notabilityは約3GBをiCloudに保存していることが確認できた。 (これは、Notabilityの設計をはるかに超えている。 この大量のデータは、iOSデバイスでは、iCloudアクセスをオフにしてからオンに戻すと、Notabilityがすべてのノートを複製することが一因となっています。 どうやら、オフにすると、ローカルキャッシュが永久的なローカルデータストアになるようです。 その後、iCloudをオンに戻すと、NotabilityはiCloudからすべてのノートの別のコピーをダウンロードし、新しいキャッシュに入れます。 Notability の問題をデバッグしようとすると、すべてのノートのコピーが 4 つになってしまいます。

4 問題の原因Notability と iDrive の両方にバグの兆候が見られたので、何が大量のダウンロードを引き起こしたのかはわかりません。 ライブラリで何が起こっているかを見るには、[表示] メニューから [Finder の表示オプションを表示] を選択し、[すべてのサイズを計算] をチェックして、Finder がディレクトリ内のすべてのフォルダのサイズを表示できるようにすると便利です。 それは、私が最初に iDrive にアップロードしたのと同じ量のデータ、30GB を持っていました。

Notability がライブラリ/キャッシュ/CloudKit に情報をキャッシュしていたと思われます。 異なる時点で、このフォルダーは 5 ~ 20 GB になっており、もちろん Notability が管理するはずの 3 GB に対して多すぎる量です。 この2つを合わせると、30+3GBのデータを同期させるのに、1台のマシンに400GBのダウンロードが必要なわけがないのです。 何かが、機能していない何かを達成しようと、何度も何度も試み続けていたに違いありません。

CloudKit の大きなキャッシュは、Notability が問題であることを示唆していました。 CloudKit フォルダと Caches フォルダ全体も削除してみました。 これらがゴミ箱にあるとき、さまざまなシステム プロセスによってまだ使用されていました。 再起動後、CloudKitの下に大きなキャッシュがダウンロードの結果にしては早く再作成されるのを時々見ました。したがって、ファイルがゴミ箱にあったときに使用していた同じプロセスが、再起動後にファイルをCloudKitに回復したのではないかと思います。 これを防ぐ唯一の方法は、i) インターネット接続を切り、ii) CloudKitフォルダを削除し、iii) 再起動し、iv) ゴミ箱を空にし、v) インターネット接続を再びオンにすることでした。 しかしその後、CloudKitキャッシュはダウンロードによって自身を再構築し続けるようでした。 これは、Notability内部から私のデータをすべて削除した後でも続いているようでした。 (今にして思えば、iMac と MacBook の両方からこのキャッシュを削除して、一方のマシンのキャッシュが他方のマシンのキャッシュを再構築しようとしている可能性を排除すべきでした。)

iDrive からもすべてのデータを削除し、各マシンと iDrive にアクセスできる各ユーザーでこれを実行してから、私の問題は解決されました。 その過程で、CloudKit のキャッシュ フォルダを削除することも何度か試みました。 (Notability が原因であると直感しましたが、iDrive も何らかの方法で CloudKit キャッシュを使用しており、それが問題の真の原因である可能性もありますし、Notability と iDrive の間に何らかの相互作用があるか、2 つのマシンのキャッシュ間に遅延または相互作用があり、Notability データを削除することで問題が解決しましたが、iDrive からすべてのデータを削除するまで表示されませんでした。

コメントを残す

メールアドレスが公開されることはありません。