LINUXサーバーの負荷を軽減作業してみた

こんにちは

今週はいつもと違った作業をやることがあってバタバタし、
ブログを書くのがギリギリになってしまいました。

継続していくことに価値があるのでこれからも続けていきます。

今回はサーバーのメモリが上昇していたので簡単に調査したことをまとめたいと思います。

今回の環境
LINUX
Apache

やったことリスト

①クーロンタブの情報を確認する
②サーバに入ってプロセス状況を確認する。
③Apacheの設定を見直す
④アクセスログの確認

①クーロンタブの設定を確認する。

クーロンタブは設定をしておくと自動で動いてくれるものです。

クーロンタブの状況を確認する時は下記を実行する
$ crontab -l
00 03 1 * * test batch

クーロンタブはは左から「分(Minutes)」「時(hour)」「日(day)」「月(month)」「曜日(Day of the week)」となっている。
※*になっているところは毎回となります。

上記の場合は毎月1日3時00分に実行するということになります。

クーロンの実行されている処理は特に特殊なことをしなければ下記の階層にログが置いてあります。
/var/log/cron
/var/log/cron.1
/var/log/cron.2
/var/log/cron.3

1番やってはいけないのが2時間かかる処理で毎時1分に設定するとバッチが二重で動いてしまうので要注意です。

②サーバに入ってプロセス状況を確認する。

プロセスを確認するときにpsとうコマンドがあります。

今回はこちらのオプションを使って出力しました。
ps -axu

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
apache XXXX 0.0 0.0 XXXX XXXX ? S 04:02 0:06 /usr/sbin/httpd
apache XXXX 0.0 0.0 XXXX XXXX ? S 04:02 0:16 /usr/sbin/httpd
apache XXXX 0.0 0.0 XXXX XXXX ? S 04:02 0:09 /usr/sbin/httpd
apache XXXX 0.0 0.0 XXXX XXXX ? S 04:02 0:06 /usr/sbin/httpd

オプションは
a : サーバの操作のプロセスを表示
x : サーバの操作以外のプロセスを表示
u : CPUとメモリ状況を表示

いつもバッチの稼働状況を使う時はps -efを使っていたので
一緒に作業していたチームの方がすぐにオプションを教えてくれました。

 e : 実行しているコマンド名と環境変数を表示
f : プロセスの階層を表示

ここで気付いたのが使っていないプロセスを発見しました。

関係者に状況を聞いたところ、とりあえずインストールして運用してみたが使わなくなった。
しかし、サービスを停止することを忘れていたそうです。⇐これ、SEあるある。使っているかもしれないからとりあえず残しておこうと思考

可能であれば使わなくなったときに停止してほしいですよね。

③Apacheの設定を見直す

プロセスを確認したときにApacheのプロセスが多いことに気づきました。

これは設定ファイルを見直す必要があると気づきました。

設定ファイルは通常下記のところに置いてあります。

/etc/httpd/conf/httpd.conf

見直す必要があるのはこちらになります。

StartServers XXXXX
MinSpareServers XXXXX
MaxSpareServers XXXXX
ServerLimit XXXXX
MaxClients XXXXX
MaxRequestsPerChild XXXXX

StartServers : 起動時に作成されるプロセス数
MinSpareServers : アイドル状態にいる子サーバプロセスの最小数
MaxSpareServers : アイドル状態にいる子サーバプロセスの最大数
ServerLimit : MaxClientsに指定可能な値の上限。(MaxClientより大きな数にする)
MaxClients : 応答できる同時リクエスト数
MaxRequestsPerChild : 個々の子サーバプロセスが扱うことのできるリクエストの総数。

今回はMinSpareServersを見直したほうが良いかと気づきました。

④アクセスログを確認

アクセス状況とAPIの稼働状況を確認する時はこちらのログを見ると確認できます。

 /var/log/httpd/access_log

XXX.XXX.XXX.XXX – – [13/Apr/2019:04:02:39 +0900] “GET / HTTP/X.X”
XXX.XXX.XXX.XXX – – [13/Apr/2019:04:02:41 +0900] “HEAD / HTTP/X.X”

今回はAPIの設定が一部誤りがあったので修正してもらいました。

最後に

サーバーの稼働状況の整理は自分の部屋の整理と一緒です。

僕は家の中にあるものは最低限のものだけにしたいと考えている人です。

外に持ち歩くものも最低限だけにして軽くしたい人です。

部屋が汚くなる理由はものがあるからと思ってます。

不要なものは潔く捨てる。

新しいものを買ったら、古いものは止める。

これをしていかないと不要なものが貯まる一方です。

何かを始まるときは何かが終わらせる必要がある。

もし、どうしても必要なものが増えたら、広い部屋がある家に引越す。

どんなものも資源は有限なので適正に合わせて行きたいと思います。

関連記事一覧

  • コメント ( 0 )

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。