こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CentOSで I使用%が高い

CentOS7でWEBアプリケーションを使って運用しているのですが、最近、(と言っても2回目で、前回はちょうど一ヶ月前でした。)
サーバーの動きが悪くなり、
# df -ih
で確認しますと、 I使用%が98%など、100%近い状態になって、DBにアクセスができなくなります。
再起動をするだけで、 I使用%が1%になり、平常運用できます。
再起動で直るので、特にどこかの容量が大きすぎるということもなさそうなのですが、頻繁に起こりますと困ってしまいまして、こちらは何か原因があるのでしょうか。
変なログ?みたいなものが大量に作られてしまうのでしょうか?
原因や確認方法、解決策をご存知の方がいらっしゃいましたら是非教えてください。
どうぞよろしくお願いいたします。

投稿日時 - 2020-04-03 18:46:31

QNo.9730832

すぐに回答ほしいです

質問者が選んだベストアンサー

ちと、こちらも引っかかる部分が有りましたので、調べてみました。

再起動で動き出す事を仰ってらしたので、再起動でクリアされる一時的に生成されているモノを疑い、tmpfs* inode fullで、google検索をかけました。

*)メモリやスワップパーティションに生成されるファイルシステム。

ヒットした結果の中では、こちらが参考になるかと。
Linuxでinodeが枯渇した場合にどうやって調査するか
http://lab.astamuse.co.jp/entry/2018/03/15/114500

df -ihの出力結果のファイルシステムに関わる部分が欲しかったのは、この部分が使い果たされることが「普通にありがちなコト」なので、それを明確にしたかったワケです。

こちらは、apacheの直近の脆弱性についての情報ですが、過去の情報から見るに、サービス拒否の事象も発生しているため、ご利用のバージョン含め、ちょこちょことご確認を。

サイオス セキュリティブログ
https://security.sios.com/
Apacheの脆弱性情報(Low: CVE-2020-1927, CVE-2020-1934)
https://security.sios.com/vulnerability/apache-security-vulnerability-20200402.html

問題のWEBアプリケーションのサーバ側プログラムのコードベースが判る場合、php等各言語環境の脆弱性情報やフォーラム上のバグレポート、パッケージの更新履歴などもアタり、一致する事例がないか探しては如何でしょう。

centOS公式フォーラム
https://forums.centos.org/

カーネルや、その周辺モジュールについても、不具合発生時には同様な情報を問題解決のために漁って、判断材料に加えるとよろしいかと。

あとは、データベースのメンテナンスタスクを、業務時間外**に指定して、リソースの取り合いを抑止するくらいですか、今思いつくのは。

**)標準だとタイムゾーン指定がUTFなままの可能性が有って、9時間+の日本では、意識して設定しないと、ソート・圧縮等のメンテナンスタスクが変な時間に動き出す可能性が・・。

参考URL:http://lab.astamuse.co.jp/entry/2018/03/15/114500

投稿日時 - 2020-04-09 22:28:17

お礼

A1200hd40さん
お忙しい中たくさん教えてくださいまして、本当にありがとうございます。
一つ一つ確認させていただきながらログの勉強をしていきたいと思います。
サーバーを扱うのはなかなか難しいですね。。 (泣)
めげずに頑張りたいと思います。
ほんとうにありがとうございました。

投稿日時 - 2020-04-13 15:33:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

会社内のシステムならば、システム管理者はいないのですか?

お尋ねしているのは、そのWEBアプリケーションが稼働しているベースの環境(フレームワーク)と、事象が発生してる時点のログ情報です。
ベースはapacheなのでしょうか、他のhttpサーバプログラムなのでしょうか?
それを伴わないモノなのでしょうか?

各クライアントがデータベースに接続できないその時点で、エラーレベルか警告レベルのログは出ていないのでしょうか?
あるいは、マシンパワーを食われる、あるいはストレージを占有するような定時処理がcron等で起動していたりしていないのでしょうか?(こういうモノもログに記録されます。

どこかに不具合が出ているならば、ログやジャーナルに、発生した時間と共にエラーや警告が記録されているはずです。
これは、単に「エラー」と記録されるわけではなく、カーネルモジュール名やアプリケーション名なども記録されます。
ストレージがハードウェア不良を起こしている場合も、ATAやSCSI等の該当カーネルモジュールが延々とエラーを吐き続けます。

容量逼迫に至るファイルシステムの名前を提示できないのは、何故でしょう?
ファイルシステムの名称は標準化されているので、「特に名前をわざとつける」などしていなければ、提示できないモノでは無いはずです。

見当を付けて、問題の切り分けを行わないと、どうにもなりません。
ですから、その情報が必要なのです。

あなたがsuあるいはsudo権限を持っているならば、topコマンド等のモニタリングプログラムで、プロセッサ占有率を含め、稼働中のすべてのプロセスを確認可能なハズなのですが、そこからも何か読み取れませんか?

topコマンドの使い方・見方
https://linuxserver.jp/linux/top%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/

こちらは、より見易いhtopについて。

htopコマンドで覚えておきたい使い方11個
https://orebibou.com/2016/05/htop%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E4%BD%BF%E3%81%84%E6%96%B911%E5%80%8B/

参考URL:https://linuxserver.jp/linux/top%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/

投稿日時 - 2020-04-07 21:23:43

お礼

A1200hd40さん
お返事ありがとうございます。

ベースはapacheです。

>各クライアントがデータベースに接続できないその時点で、エラーレベルか警告レベルのログは出ていないのでしょうか?
この時は、容量がいっぱいです、というようなメッセージが出ていました。
定時処理をcronで行なっていますが、こちらはバックアップを取っているくらいです。

ログを見るのに慣れていないもので、どう見たらいいかわからなかったのですが、一つ一つ確認していくということですね。

>容量逼迫に至るファイルシステムの名前
こちらどう見ればいいのかわかりません、、現在は問題なく動いていますので、またおかしくなったときに確認してみます。

問題があったときに、容量のグラフみたいなものからどこが問題があるのかを掘り下げてみたりしたのですが、特に原因がこれ、というものに当たらず、再起動したら問題がなくなったということなので、既存ファイルには関係がないのかなと思ったので、どう探していけばいいのかなと思いました。

色々ログの見方を教えてくださいましてありがとうございます。
まずはログの見方を勉強してみます。
問題なく動いている時はいいのですが、原因がわからず動かなくなった時は、本当に困ってしまいまして。。
普段からログを見るようにします。
ありがとうございます。

投稿日時 - 2020-04-09 18:05:46

ANo.2

>WEBアプリケーションを使って
とりあえずお使いのモノが判らなければ、どなたも調べようがありません。

「その状態に陥った時点」の「それ」に関するログか、ジャーナルの部分を調べるワケですから。
そのへんの開示をお願いします。

journalctlの参考サイトを、もひとつ。

CentOS 7におけるログ機構「Systemd Journal」を使いこなす
https://thinkit.co.jp/story/2014/12/18/5389

参考URL:https://thinkit.co.jp/story/2014/12/18/5389

投稿日時 - 2020-04-06 20:09:59

お礼

A1200hd40さん
お返事ありがとうございます。
すみません、WEBアプリケーションは多数で、複数人で使っています。(社内で使っていて、いろんな部署の人が使っています)
ですので、どれが原因で何をした時、というものが突き詰めることができないのです。。
使っている人から、なんか表示がおかしいとか動きが悪い、と言われて、# df -ih
で確認しますと、 I使用%が98%など、100%近い状態になって、再起動したら、すっきり治る、という感じです。
サーバー全体で、どこがおかしい、というのが見ることができるのかなと思ったのですが、そういうことはできないということでしょうか。。?
なんとなく、先にDBにアクセスしづらくなって、そのうちにページも表示できなくなっていく、というような現象に見えます。

投稿日時 - 2020-04-07 10:07:15

ANo.1

具体的情報が不足しています。

ハードウェアとしてのサーバの応答は、その時点で動いてるモノ(apache等のサーバプログラム等)に影響を受けるでしょうから、そのへんのログ、もしくはジャーナルを漁ってみては?
systemd ジャーナルの掘り方は、google検索でヒットした中では同じcentos7のこちらを参考にされては如何でしょう?

https://yomon.hatenablog.com/entry/2016/05/24/192046

ファイルシステム未指定でiノードの容量の話をされても、リモート出来るワケではありませんから、どなたも回答出来かねるかと思われます。

参考URL:https://yomon.hatenablog.com/entry/2016/05/24/192046

投稿日時 - 2020-04-05 21:19:11

お礼

A1200hd40さん
お返事ありがとうございました。
ログを見るのに慣れてないもので、教えていただいたサイトのコードを最初から試していったらよろしいでしょうか。
(まず最初のコードを試してみたのですが、特に問題がありそうではなく、といっても見方が悪いのかもしれませんが。。)
また、ログの表示で、これが表示されたら気をつけたほうがいい、みたいなことはありますでしょうか。
他にどのような情報をご提示したらよろしいでしょうか。
重ね重ね申し訳ございませんが、ご教授いただけましたら幸いです。
よろしくお願いいたします。

投稿日時 - 2020-04-06 17:14:17

あなたにオススメの質問