はじめに
MacBookを選ぶ際は、メモリ 8GB、SSD 512GB以上を選びましょう。
想定読者
- MacBookが欲しいエンジニア
- 吊るしモデルでいいやと思っている人
事象
ストレージ不足で、Dockerを起動しようとしたら以下のエラーが出た。
api-dbsrv01 | 2023-12-20T23:22:53.269082Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
api-dbsrv01 | 2023-12-20T23:22:53.311464Z 1 [ERROR] [MY-012585] [InnoDB] Linux Native AIO interface is not supported on this platform. Please check your OS documentation and install appropriate binary of InnoDB.
api-dbsrv01 | 2023-12-20T23:22:53.312003Z 1 [Warning] [MY-012654] [InnoDB] Linux Native AIO disabled.
api-dbsrv01 | 2023-12-20T23:25:57.611704Z 1 [ERROR] [MY-011092] [Server] Upgrading the data dictionary from dictionary version '0' is not supported.
api-dbsrv01 | 2023-12-20T23:25:57.615894Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
api-dbsrv01 | 2023-12-20T23:25:57.616713Z 0 [ERROR] [MY-010119] [Server] Aborting
tutorial-go-fr-app-1 | go: downloading github.com/aws/aws-sdk-go v1.49.0
api-dbsrv01 | 2023-12-20T23:25:57.695788Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.29) MySQL Community Server - GPL.
api-dbsrv01 exited with code 1
api-dbsrv01 | 2023-12-20T23:30:36.038352Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.29) initializing of server in progress as process 100
api-dbsrv01 | mysqld: Error writing file '/var/lib/mysql/auto.cnf' (OS errno 28 - No space left on device)
api-dbsrv01 | 2023-12-20T23:30:36.089122Z 0 [ERROR] [MY-010076] [Server] Initialization of the server's UUID failed because it could not be read from the auto.cnf file. If this is a new server, the initialization failed because it was not possible to generate a new UUID.
api-dbsrv01 | 2023-12-20T23:30:36.089685Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
api-dbsrv01 | 2023-12-20T23:30:36.091659Z 0 [ERROR] [MY-010119] [Server] Aborting
api-dbsrv01 | 2023-12-20T23:30:36.099581Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.29) MySQL Community Server - GPL.
一時的な解決策
- 不要なアプリを削除する
- 不要なdocker imageを削除する
- 不要なdocker volumeを削除する
- 不要なnode_modulesを削除する
私の場合は、以下を削除して対応しました。
- Unityを削除した
- 不要なdocker imageを削除する
- 不要なdocker volumeを削除する
学び
- MacBookを買うときは、512GB以上を買う
おまけ
M1 MacBookair メモリ8GBで5分間隔でcronにtopを取得するようにして、2021/7/4 〜 2023/4/22までの期間で集計した結果以下のようになりました。ほぼ、メモリ使用率90%以上で、仮想メモリもガンガンに使っている状況でした。基本的に、ブラウザは、GoogleChrome、docker立ち上げっぱなし、な環境で使用しておりました。
縦軸:メモリ使用率
横軸:タイムスタンプ
まとめ
急に、dockerのエラーが出て、DBのコンテナが立ち上がらなくなったので、なんでだろうと調べてみたら
ストレージ不足が原因でした。MacBookを買うときは、512GB以上のストレージを買うこと。メモリも16GB以上がいいよ.
ご覧いただきありがとうございました。よろしければ、いいね、フォローよろしくお願いいたします。