# 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





コメント