KONANN1997's Blog

日常生活で起こった出来事などを書いています

シャットダウンタスクの遅さ

 コンピュータの電源を切る時、ユーザはコンピュータに、「システム終了(シャットダウン)」を命令する。この時、CPUは順次、計算(タスク)を終了させ、最終的にコンピュータ全体の計算が終了する*1

 その動作は、アプリケーションの終了、サービスの終了、マネージャ(OS)の終了、この3段階で行われる。基本的に、ハードウェアリソースを多く消費するタスクがバックグラウンドで実行している場合は、シャットダウンに時間がかかる場合があるが、正常であれば、遅くても60秒ちょっとでシャットダウンしてくれる。そうでなければ、大体30秒もあればシャットダウンしてくれる。HDDをストレージにしている場合は、そんなにハードウェアリソースを消費して無くても60秒近くはかかったりするが。

 そんな中、親が持ってるMacBook Pro(2016)は、このシャットダウンタスクが中々進まず、最長3分ぐらいかかったのだ。あ、ストレージはSSD512GB。

 特にバックグラウンドで重いタスク(ハードウェアリソースを多く消費するタスク)が実行されている訳でもないのに、SSDでこの遅さは異常だと思い、色々と調べていたのだが、ついに原因が分かったのだ。(ちなみに僕のMacBook Pro(2012)は、ストレージSSD1TBで、15秒ちょっとでタスクが終わるよ。HDDの時は1分ぐらいかかってたけどね。)

 原因は2つ上げられる。そのうち、1つはディスクのアクセス権が誤りである、と言うもの。これはアクセス権の修復を行えば直ると言われているが、何と新OS「High Sierra」では、アクセス権の修復が出来なくなっていたので、関係なし(というか無理)という結論に至った。

 次の原因は、カーネルキャッシュを再構築する、というもの。

 カーネルキャッシュとは、ハードウェアとアプリケーションの架け橋であるカーネルが、この動作を円滑に行うために、レジスタ(CPU内部にあるROM)に保存された情報である。このキャッシュが古いと、タスクが必要とするキャッシュ情報が一致せず、ストレージ(SSD)に必要とするキャッシュ情報の提供を命令するので、ストレージでのデータの検索+タスクの実行と、時間がかかるのだ。しかもカーネルのキャッシュ情報を書き換えは行ってくれないので、手動で再構築しない限り、ずっと古いキャッシュ情報のまま、シャットダウンタスクを実行する羽目になる。これを改善するため、キャッシュを再構築することで、キャッシュが新しいものに更新されるので、ストレージでのデータ検索のタスクが消えるので、早くシャットダウンしてくれる。

 キャッシュを再構築したところで、再起動を実行再起動を実行。すると、3分近くかかっていたシャットダウンが、何と1分もかからずに終えてくれたではないか。これにより、シャットダウンの遅さに、苛立ちを憶えなくて済む。

 シャットダウンに遅さを感じる人は、是非やってみてはいかがかな。Windowsの場合は、インストールしているドライバが干渉してないか、確認するといいよ。

Windowsのシャットダウンが遅くなる原因と対策方法:

http://minto.tech/windows-syattodaunn/


3月22日 21時投稿

*1:シャットダウン:OSによっては、コンピュータ自体の電源供給がストップしておらず、一部の内部機器には通電されている場合がある。