# df -h Filesystem Size Used Avail Use% マウント位置 /dev/vda3 195G 134G 51G 73% / tmpfs 939M 0 939M 0% /dev/shm /dev/vda1 243M 51M 180M 22% /boot
大したコンテンツを置いていないサーバが、妙に空き容量が減っているので調べてみました。
du -shで調べていくと、/var/log以下のログの肥大でも/var/www/以下でもなく、どうやらMySQLのディレクトリ内のようです。
du -sh /var/lib/mysql 68G /var/lib/mysql
MySQLにログインして、データベースごとの容量を調べてみます。
mysql> SELECT table_schema, -> floor(SUM(data_length + index_length) / 1024 / 1024) AS ALL_MB, -> floor(SUM((data_length) / 1024 / 1024)) AS DATA_MB, -> floor(SUM((index_length) / 1024 / 1024)) AS INDEX_MB -> FROM information_schema.tables -> GROUP BY table_schema -> ORDER BY sum(data_length + index_length) DESC; +--------------------+--------+---------+----------+ | table_schema | ALL_MB | DATA_MB | INDEX_MB | +--------------------+--------+---------+----------+ | ******* | 324 | 283 | 41 | | ****** | 212 | 184 | 27 | | ******* | 24 | 13 | 11 | | ***** | 17 | 12 | 5 | | ********** | 12 | 9 | 2 | | mysql | 2 | 2 | 0 | | information_schema | 0 | 0 | 0 | | sys | 0 | 0 | 0 | | performance_schema | 0 | 0 | 0 | +--------------------+--------+---------+----------+
データベースのサイズとも乖離が激しいです。
バイナリログを見てみます。
show master logs; +------------------+------------+ | Log_name | File_size | +------------------+------------+ | mysql-bin.000001 | 9671 | | mysql-bin.000002 | 125 | | mysql-bin.000003 | 2001 | | mysql-bin.000004 | 144441323 | | mysql-bin.000005 | 125 | | mysql-bin.000006 | 3208781 | ... | mysql-bin.001095 | 1125651027 | | mysql-bin.001096 | 1222413541 | | mysql-bin.001097 | 803543922 | +------------------+------------+
どうやらこれのようです。最後のものを除いて削除します。
mysql> purge master logs to 'mysql-bin.001096'; Query OK, 0 rows affected (0.04 sec) mysql> show master logs; +------------------+------------+ | Log_name | File_size | +------------------+------------+ | mysql-bin.001097 | 803543922 | +------------------+------------+ 1 rows in set (0.00 sec) # df -h Filesystem Size Used Avail Use% マウント位置 /dev/vda3 195G 74G 112G 40% / tmpfs 939M 0 939M 0% /dev/shm /dev/vda1 243M 51M 180M 22% /boot
これでサーバーの空き容量がたっぷり空きました!
バイナリログを一週間で自動削除するように変更しておきます。
vi /etc/my.cnf [mysqld] expire_logs_days = 7
コメント