こんにちは。uchidaです。
今回はふと疑問に思ったことについて実際に環境を作成してみたいと思います。
私が疑問に思ったことですが、それは、
ディスク容量が100%になったらサーバはどのような動作をするのか?
ということです。
ディスク容量が100%になる状況に今まで遭遇したことがなかったので、試して目の当たりにしたいと思います。
目次
環境構成
ディスクを逼迫させる方法
挙動の確認
実施結果
感想
環境構成
さっそく検証をするために環境の構築を行っていきます。
今回はディスクサイズが10GBサーバを1台建てました。
また、ミドルウェアの挙動も確認するため、以下のような環境を構築しました。
- Apache 2.4
- MySQL 5.6
- PHP 5.6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[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文の無限ループとリダイレクションを利用して
文字列を追記していくものです。
1 2 3 4 5 6 |
#!/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%になりました。
1 2 3 4 5 6 |
[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 ~]# |
挙動の確認
コマンドなどを入力して動作確認をしてまいります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[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 ~]# |
参照系のコマンドは問題なく起動していますね。
では、今度はファイルを作成してみます。
1 2 3 4 5 |
[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を利用してテキストを作成してみます。
1 |
[root@www ~]# vi hoge |
実行すると
1 2 3 4 5 |
"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%になるとサーバとしての動作が不安定になることがわかりました。
いきなりこのような状態になることは無いとは思いますが、定期的にディスクの整理を実施しないと、ふとした瞬間に動作しないくなるということになりそうです。
大切なサービスを止めないためにもディスク容量の逼迫には気をつけて管理をしましょう。
投稿者プロフィール
最新の投稿
- AWS2019年1月22日Amazon Lightsail を使ってみた
- GCP2018年2月19日Google Express利用してみました
- Amazon echo2018年2月19日Amazon EchoとSlackを連携してみました
- Amazon echo2018年2月16日Amazon Echoとスマートプラグを連携してみました