ディスク容量が100%になるとどうなるのか試してみました

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。uchidaです。

今回はふと疑問に思ったことについて実際に環境を作成してみたいと思います。
私が疑問に思ったことですが、それは、

ディスク容量が100%になったらサーバはどのような動作をするのか?

ということです。

ディスク容量が100%になる状況に今まで遭遇したことがなかったので、試して目の当たりにしたいと思います。

目次

環境構成
ディスクを逼迫させる方法
挙動の確認
実施結果
感想

環境構成

さっそく検証をするために環境の構築を行っていきます。
今回はディスクサイズが10GBサーバを1台建てました。
また、ミドルウェアの挙動も確認するため、以下のような環境を構築しました。

  • Apache 2.4
  • MySQL 5.6
  • PHP 5.6

 

[root@www ~]# httpd -v
Server version: Apache/2.4.27 (Amazon)
Server built: Sep 24 2017 23:19:50
[root@www ~]#
[root@www ~]#
[root@www ~]# mysql -u root -p -D mysql -e "SELECT version()"
Enter password:
+-----------+
| version() |
+-----------+
| 5.6.38    |
+-----------+
[root@www ~]#
[root@www ~]#
[root@www ~]# php -v
PHP 5.6.32 (cli) (built: Nov 13 2017 22:50:59)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
[root@www ~]#

ディスクを逼迫させる方法

どのようにディスクを逼迫させていくか、ということですが、今回はシェルを使いました。

シェルの内容は、最初に空のファイルを一つ作成し、while文の無限ループとリダイレクションを利用して
文字列を追記していくものです。

#!/bin/bash
touch Testdata #空のファイルを作成 
while :
do
echo "a b c d e f g h i j k l m n o p q r s t u v w x y z" >> Testdata #適当な文字列をTestdataに追記 
done

こちらを動作させてから20分程でディスク使用率が100%になりました。

[root@www ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        488M   56K  488M   1% /dev
tmpfs           497M     0  497M   0% /dev/shm
/dev/xvda1      9.8G  9.8G     0 100% /
[root@www ~]#

挙動の確認

コマンドなどを入力して動作確認をしてまいります。

[root@www ~]# date
Sat Feb 10 18:49:24 JST 2018
[root@www ~]#
[root@www ~]# pwd
/root
[root@www ~]#
[root@www ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@www ~]#
[root@www ~]# ls -la /var/www/html/
total 9344
drwxr-xr-x 3 root   root      4096 Feb  2 15:34 .
drwxr-xr-x 7 root   root      4096 Feb  2 15:11 ..
-rw-r--r-- 1 root   root         4 Feb  2 15:27 index.html
-rw-r--r-- 1 root   root   9551485 Jan 17 06:39 latest.zip
drwxr-xr-x 5 apache apache    4096 Feb  2 15:44 wordpress
[root@www ~]#
[root@www ~]# uptime
 18:49:51 up 7 days, 15:30,  1 user,  load average: 0.00, 0.01, 0.00
[root@www ~]#

参照系のコマンドは問題なく起動していますね。

では、今度はファイルを作成してみます。

[root@www ~]# touch hoge
[root@www ~]#
[root@www ~]# ls -la hoge
-rw-r--r-- 1 root root 0 Feb 10 18:51 hoge
[root@www ~]#

0バイトのファイルが正常に作成されました。

次にviを利用してテキストを作成してみます。

[root@www ~]# vi hoge

実行すると

"hoge"
"hoge" E514: write error (file system full?)
WARNING: Original file may be lost of damaged
don't quit the editor until the file is successfully written !
Press ENTER or type command to continue

警告が表示されました。
また、テキストの入力を試みましたが、書き込みが出来ませんでした。

結果

結論として、ディスク容量が100%になると以下のような挙動をする事がわかりました。

容量を伴うファイルの作成が一切不可能になる。(空きスペースが無いので当たり前ではございますが)

また、ApacheやMySQLなどのログファイルを確認したところ、ディスク容量が100%になったタイミング以降のログの出力がされておりませんでした。もしディスク容量が100%の状態で問題が発生した際にログを用いて調査が出来ない危険性があるということですね。

感想

ディスク容量の使用率が100%になるとサーバとしての動作が不安定になることがわかりました。
いきなりこのような状態になることは無いとは思いますが、定期的にディスクの整理を実施しないと、ふとした瞬間に動作しないくなるということになりそうです。

大切なサービスを止めないためにもディスク容量の逼迫には気をつけて管理をしましょう。

コメントを残す

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

Time limit is exhausted. Please reload CAPTCHA.