質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

6090閲覧

突然CentOS6のCPU使用率が100%にあがった原因を突き止め、再発防止対策を行いたい

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

CPU

CPUは、コンピュータの中心となる処理装置(プロセッサ)で中央処理装置とも呼ばれています。プログラム演算や数値計算、その他の演算ユニットをコントロール。スマホやPCによって内蔵されているCPUは異なりますが、処理性能が早いほど良いとされています。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2020/01/14 05:25

前提・実現したいこと

Windowsクライアントマシンしかほとんど使ったことがない、Linux素人です。
クライアントマシン(Window 10 Pro)のブラウザ(Microsoft Edge、Chrome)からアプリを利用しようとするとエラーが表示され、利用できなくなりました。
サーバーマシン(VMwarevSphereClientHTML5上に置いたCentOS release 6.10 (カーネル:2.6.32-754.25.1.el6.centos.plus.x86_64))を確認すると、CPUが急に100%に達していました。
現在は、サーバーを再起動し、クライアントマシンからアプリが起動できる状態です。
CPU使用率が突然あがった原因を調査したいのですが、CPU使用率があがったプロセスとその原因を突き止め、対処をするにあたり、どうすればよいか自己解決に行き詰っています。
そのため、Teratail初質問を失礼しております。
ご回答にあたり、不足している情報ありましたら恐縮です。お知らせいただければ幸いです。
また、初心者の為、正確な言葉遣いできていない可能性ありますが、その場合もお手柔らかにお知らせいただければ幸いです。
よろしくお願いいたします。

発生した問題・エラーメッセージ

アプリを使おうとしたときに、クライアントマシンブラウザからアクセスした際に表示されたエラーメッセージ

The template engine cannot be used. Please confirm the execution user of the installation.

試したこと

1.上記のエラー表示される状況が発生した後、サーバーマシンの状況確認の為、まずサーバーマシンを置いてあるVMwarevSphereClientHTML5にログインすると、いつもは白い画面であるが赤い色で表示がされ、仮想マシンのCPU使用率が約30分間で100%に急に上がったことがわかるグラフが表示されていた。
2.一般ユーザーアカウントからサーバーマシンでRebootコマンドを実行。
3.シングルユーザーモードで再起動される。
4.表示された端末メッセージに従い、管理者アカウント(root)にログインし、fsckコマンドを実行。
5.fsckが完了されたようなので、rebootコマンドを実行。
6.無事アプリが再起動され、クライアントマシンのブラウザからもアプリ再起動を確認できた。VMwarevSphereClientHTML5では、白い画面に戻り、グラフは再起動のタイミングからCPU使用率が約0%に下がっていったことが表示されていた。
7.CPUのアップグレードが必要かと思い、サーバーマシン一般ユーザーアカウントにログイン。Sudo yum updateコマンドを実行し、再度reboot。
8. 原因検証の為、再起動後サーバーマシンに一般ユーザーアカウントでログイン。「linux ボトルネック 調査」でブラウザ検索してヒットしたページいくつかを参考に次の項目9.以降を行った。
9.vmstatコマンドを実行し、CPU使用率調査。
※問題なさそうに見えるのですが見方わかっていない可能性がありますので、問題あればご教示いただけますと幸いです。
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 318760 278520 89484 581884 0 1 14 21 91 11 2 2 96 0 0
10.cat /proc/meminfoコマンド実行し、空きメモリ量確認。(MemFree276+MemFreeBuffers87+BuffersCached580=約943MBですが、余裕あると考えられますでしょうか?)
MemTotal: 1922956 kB
MemFree: 276828 kB
Buffers: 87832 kB
Cached: 580684 kB
SwapCached: 15660 kB
Active: 726468 kB
Inactive: 710808 kB
Active(anon): 283180 kB
Inactive(anon): 489612 kB
Active(file): 443288 kB
Inactive(file): 221196 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4128764 kB
SwapFree: 3809932 kB
Dirty: 116 kB
Writeback: 0 kB
AnonPages: 754564 kB
Mapped: 43688 kB
Shmem: 4024 kB
Slab: 117900 kB
SReclaimable: 72484 kB
SUnreclaim: 45416 kB
KernelStack: 6096 kB
PageTables: 36596 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 5090240 kB
Committed_AS: 2438884 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 157064 kB
VmallocChunk: 34359566976 kB
HardwareCorrupted: 0 kB
AnonHugePages: 575488 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 8192 kB
DirectMap2M: 2088960 kB
11. ディスクI/O状況確認方法わかりませんでした。(iostat -xコマンドは「コマンドが見つかりません」とのことで実行できませんでした。)
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 318884 297592 81044 574600 0 1 15 21 88 5 2 2 96 0 0
12.netstat -an | wc -lコマンド実行し、ネットワーク状況確認。ポートの総計に比べて少ない数字なので、問題ないでしょうか?
794
13. ps -ae -o pid,pcpu,rss,time,cmd --sort=-pcpuコマンド実行し、CPU 使用率の高いプロセスを確認。
※使用率異常なプロセスがあるかどうか判断できませんでした。高いプロセスある場合、なぜCPU使用率が高いか調査したいのですが、次のステップとしてどうしたらよいでしょうか?
PID %CPU RSS TIME CMD
(プロセスID、CPU利用率、メモリ利用率、CPU時間、コマンド名)
1358 0.8 156264 00:51:18 /opt/eset/esets/sbin/esets_daemon
1359 0.2 2592 00:15:08 /opt/eset/esets/lib/esets_wwwi
2553 0.1 1560 00:11:11 /bin/sh /usr/local/cybozu/cbrc/bin/boot.sh start
2593 0.1 157340 00:07:11 jsvc.exec -user cbrs_cbrc -home /usr/local/cybozu/cbr
1 0.0 1188 00:00:00 /sbin/init
2 0.0 0 00:00:00 [kthreadd]
3 0.0 0 00:00:00 [migration/0]
4 0.0 0 00:00:12 [ksoftirqd/0]
5 0.0 0 00:00:00 [stopper/0]
(中略)
19943 0.0 292 00:00:00 /var/www/cgi-bin/cbgrn/sched --pid-file /var/www/cgi-b
19944 0.0 21016 00:00:00 /var/www/cgi-bin/cbgrn/grn.cgi -C -q -f /var/www/cgi-b
20407 0.0 616 00:00:00 sleep 1
20408 0.0 1112 00:00:00 ps -ae -o pid,pcpu,rss,time,cmd --sort=-pcpu

以上、どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

TOP コマンドでどのプロセスがCPUを食い尽くしているか
確認されてはいかがでしょう

投稿2020/01/14 05:42

nanami12

総合スコア1015

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/14 07:00

topコマンドを実行したところ、 psコマンド実行結果と同じくセキュリティソフト「eset」のプロセスが「%CPU」が”0.3”ぐらいで一番高いようです。急に一時的にCPU使用率が100%になるほど負荷がかかることはあるのでしょうか?
nanami12

2020/01/14 07:14

通常linux はwindows 等のOSとは異なり、フリーズして 固まるような仕組みではありません。仮に何かのプロセスのせいで 処理が重たくなる場合は対象のプロセスをkillすればよいだけの話です。 CPUの負荷100%を再現できないのであれば top -d 5 のようにして 5秒間隔で監視をさせ 放置させみては いかがでしょうか
nanami12

2020/01/14 07:22

何が原因でCPUが100%になっているのか判断できないため 例えばlinuxが悲鳴を上げ(比喩)再起動がおこなわれるなら root の権限で crontab -e で @reboot (dmesg ; tail -100 /var/log/messages)| Mail -s "`hostname` rebooted" メアド として保存しておけば、再起動された際に遺言が指定したメアドに 送信する事はできます。
退会済みユーザー

退会済みユーザー

2020/01/14 08:51

早速の再びのご回答誠にありがとうございます! Windows感覚で試行錯誤していましたが、明快に仕組みの違いと機能ご紹介くださり、理解大きく助かると共に、Linuxに少し興味がわきました!初めてみるcrontab編集画面に早速戸惑ってしまっていますが、調べて設定試みてみます。また質問させていただくかもしれませんが、よろしくお願いいたします。
nanami12

2020/01/15 00:18

>crontab編集画面に早速戸惑って linux での編集は基本的に、エディタはviかEmacsを用います。 crontab での編集はviでの編集となるので、vi (エディタ)が使えることが前提です。 また、linux の root 権限、いわゆるスーパーユーザーは何でもできるので 一般ユーザが扱えないファイルの読み書きやファイルの削除等できてしまうため rootでの作業を行うためには、linuxの基礎知識が必要です。 誤ったオペレーションをしてしまうと、システムが起動しなくなるので 有識者と作業を行うことをお勧めします。 リプライが遅くなり、申し訳ありません。
退会済みユーザー

退会済みユーザー

2020/01/17 09:55

ご丁寧に補足くださり、誠にありがとうございます! viのコマンドモードと通常のコマンドの違いが混ざったりするなどして、理解に日数かかりました。。なんとか記入してはみることができました。(と、思います。。)
guest

0

ベストアンサー

前提

あらかじめ詳細な監視を仕込んでおかないと詳細な原因はわからないことが多いです。
そのため、現時点で完全な再発防止を目指すことは難しいです。

linux ボトルネック 調査で見つかるサイトや試されている方法は今まさにボトルネックが発生している時に行う調査であって、過去の障害を探すのには適していません。

linux クラッシュ ログあたりで調べてみると現時点で調査可能な事とその限界は把握できるかと思います。
今回のケースだと、webサーバかアプリケーションサーバのログを確認してみて、怪しい挙動(例えば異常に処理に時間がかかっているアクセスが無いかなど)とハードウェア/ファイルシステム的にストレージに問題が無かったかあたりを調べるのが精いっぱいかなという気がします。
(この辺りで原因が見つかる可能性もあるので、まずは発生当時のログを調査するのが重要です)

お勧めする方向性

詳細な原因を把握するためには再現条件を把握し、問題が再現している状態で検証する事が最もシンプルな方法になります。
そのため、現時点で完全な再発防止策は諦めて、次回発生した際に調査可能な状態を整えることをお勧めします。

具体的には

  1. 今後完全に問題発生しない様にするのは現段階ではかなり困難なので、監視ツール等で動作中のモニタリングを出来るように整備する(linux 監視ツールなどで調べてみてください)。アプリケーションでログを取っているのであれば、デバッグレベルでログを確保しておく
  2. 次に発生したら、時間が許す限り発生している状態で調査を行う。そのために調査する項目やコマンドをリスト化しておく

3.同様に、次に発生したらその時点でスナップショットをとっておき、後からに検証/調査できるようにする(そのための運用手順を整備しておく)

あたりが現実的でしょうか。

投稿2020/01/14 07:20

編集2020/01/14 07:20
tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/14 08:58

ご回答ありがとうございます! 道筋と、検索に入れるべき言葉のヒントをくださるご回答に、全く一人では思いつかなかったので、大変助かり感謝いたします。ログの見方等もこれを機会に慣れるようみてみたいと思います。また質問させていただくかもしれませんが、よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問