CentOS6.5のサーバーが重いので設定変更

普段外部に公開しているのではなく、Redmineなどが入っているクラウドサーバーがとても重たいので調べて対策してみました。

スペック

  • CPU:1コア
  • メモリ:1GB
  • HDD:20GB

です。使っているのはRedmineの他にgitなどでファイルをいれています。owncloudもいれてます。

とにかく重たいペンギンサーバー

このサーバーはペンギンという名称にしています。とにかく重たく困ってました。原因はメモリの使用が多くswap領域まで使っていた事でした。

対策

サーバーはApacheを使っているので以下のようにconfファイルを変更しました。

/etc/httpd/conf/httpd.conf

<IfModule prefork.c>
StartServers 10
MinSpareServers 5
MaxSpareServers 15
ServerLimit 256
MaxClients 40
MaxRequestsPerChild 1000
</IfModule>

これで軽くなりました。その後swapoff -a && swapon -aコマンドでswapを使わない設定にしました。

HDDの容量が足りない・・・?

owncloudを使っていたせいか、なぜかHDDの容量が足りなくなってしまいました。dfコマンドでみたら以下のように出ました。

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        18G   13G  4.3G  75% /
tmpfs           499M     0  499M   0% /dev/shm
/dev/vda1        98M   73M   20M  79% /boot

13GBも使ってます。原因はおそらくowncloudであげたファイルだと思いいらないファイルを削除しました。しかしそれでも減らないので以下のコマンドを実行してみました。

du -h --max-depth=1 /
7.9G    /tmp
459M    /root
14M     /sbin
16K     /lost+found
32M     /etc
202M    /home
du: cannot access `/proc/29731/task/29731/fd/4': そのようなファイルやディレクトリはありません
du: cannot access `/proc/29731/task/29731/fdinfo/4': そのようなファイルやディレクトリはありません
du: cannot access `/proc/29731/fd/4': そのようなファイルやディレクトリはありません
du: cannot access `/proc/29731/fdinfo/4': そのようなファイルやディレクトリはありません
0       /proc
176K    /dev
4.0K    /mnt
4.0K    /selinux
2.2G    /usr
1.3G    /var
4.0K    /media
68M     /boot
23M     /lib64
4.0K    /srv
8.0K    /opt
7.3M    /bin
343M    /lib
0       /sys
13G     /

このコマンドはdfとは違いもう少し絞り込めるコマンドです。ここでは第1階層から表示しています。/tem、/usr、/varが1GB越えているのでここから何がくっているのか見ていきました。

var配下を見る

同じようにコマンドでvarの配下をみてみました。

du -h --max-depth=1 /var/
56K     /var/spool
4.0K    /var/nis
16K     /var/tmp
8.0K    /var/db
4.0K    /var/local
4.0K    /var/yp
38M     /var/log
8.0K    /var/empty
284K    /var/webmin
16K     /var/lock
120K    /var/run
4.0K    /var/preserve
114M    /var/cache
4.0K    /var/games
611M    /var/www
4.0K    /var/cvs
4.0K    /var/opt
4.0K    /var/account
4.0K    /var/crash
512M    /var/lib
1.3G    /var/

結論owncloud関係のファイルやRedmineのファイルがあるwwwやキャッシュ、logぐらいなので特に消すのは無しということでした。/usrも必要なのばかりでした。

/tmpが怪しい?

怪しいというよりも確実に7GBとかあったので気になる/tmpです。これは消していいのか調べてみたところ、/tmpは再起動すれば削除されるファイルらしいのでサーバーを再起動してみたところ、削除されませんでした。http://qiita.com/kuni-nakaji/items/f29be14be578b5a19d4b

どういうことだ・・・クーロンで自動で削除されるようにもなっているみたいですがそもそも僕はこのサーバーではクーロンを使用していない。。。手動で削除するとhttp://www.maruweb.jp.net/wp/?p=943のような危険な事にもなりかねない・・・

どうやら/tmpがサーバ再起動後、消えるか消えないかの記事を見ると設定によってかわるみたいです。僕のペンギンは再起動しても消えない設定になっていました。

手動でコマンドで削除

tmpwatch -m 24 /tmp/

でtmpフォルダの最後に開いてから24時間たっているファイルを全て削除しました。dfコマンドで確認したところ

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda3        18G  4.6G   13G  28% /
tmpfs           499M     0  499M   0% /dev/shm
/dev/vda1        98M   73M   20M  79% /boot

となりました。再起動も無事できました。