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

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

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

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

CPU

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

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

4195閲覧

APIサーバーのCPUに急に高負荷がかかり動作しなくなってしまう

GenkiSugiyama

総合スコア86

CentOS

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

CPU

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

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2020/07/24 10:29

編集2020/07/24 10:59

フロントエンド:React.js、バックエンド:Ruby on Rails APIモードで稼働しているシステムを運用しています。

それぞれさくらのVPSを別々に契約し動かしていますが、APIサーバーのCPUに急に高負荷がかかり、そのままフロントからのログインリクエストなどが動作しなくなる不具合が発生してしまっています。

イメージ説明

以前、フロント側で設定していたAPIのエンドポイントを、開発環境のみで設定すべきlocalhostのままサーバーに反映してしてしまったため同様の不具合を起こしてしまったことがありましたが、今回は本来のエンドポイントを設定しておりlocalhostが原因ではないことだけわかっている状況です。

・高負荷の原因
・原因を見つけるための方法
・解消方法

上記3点について教えていただけると大変助かります。

よろしくお願いいたします。

追記

不具合の解消についてはWebサーバーの再起動によって解消することができました。

原因についてはまだ目処が立っていません。

【原因を探すために行なったこと】
こちらの記事を参考に負荷監視を行いました。

topコマンドでロードアベレージの確認

op - 19:40:38 up 238 days, 22:25, 1 user, load average: 8.67, 8.32, 8.13Tasks: 178 total, 2 running, 176 sleeping, 0 stopped, 0 zombie %Cpu(s): 41.4 us, 0.5 sy, 0.1 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.1 si, 57.9 stKiB Mem : 2046896 total, 100332 free, 1335760 used, 610804 buff/cacheKiB Swap: 4194300 total, 3867644 free, 326656 used. 412524 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND17302 apache 20 0 444264 120640 3736 S 30.3 5.9 290:33.33 ruby17920 apache 20 0 444652 120676 3992 S 30.3 5.9 291:43.17 ruby17250 apache 20 0 444164 120624 3732 S 27.4 5.9 291:02.60 ruby 17322 apache 20 0 444364 120792 3924 S 21.5 5.9 290:41.87 ruby17221 apache 20 0 444064 120548 3760 S 14.0 5.9 291:04.84 ruby17175 apache 20 0 443964 120464 3720 S 13.0 5.9 291:23.52 ruby16848 root 20 0 58428 2240 1540 R 1.0 0.1 0:00.55 top 17012 root 20 0 1647804 17048 9008 S 1.0 0.8 7:14.35 PassengerA+27183 mysql 20 0 2408444 294320 5572 S 0.7 14.4 1575:20 mysqld 1 root 20 0 207464 3292 1996 S 0.0 0.2 67:53.58 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:02.02 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 3:39.24 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+ 7 root rt 0 0 0 0 S 0.0 0.0 0:49.43 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 R 0.0 0.0 163:50.83 rcu_sched 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-dr+

CPUのコア数は1でロードアベレージがめちゃくちゃ高い・・

sarコマンドでロードアベレージが高い原因を探る

00:00:01 CPU %user %nice %system %iowait %steal %idle 00:10:01 all 1.37 0.01 0.14 0.02 2.63 95.83 00:20:01 all 2.22 0.01 0.14 0.02 2.13 95.48 00:30:01 all 2.00 0.01 0.15 0.01 0.75 97.08 00:40:01 all 2.51 0.01 0.19 0.00 0.02 97.26 00:50:01 all 1.34 0.02 0.18 0.00 0.02 98.45 ・ ・ ・ Average: all 50.02 0.02 0.24 0.01 9.10 40.61

pidstatコマンドで負荷の高い処理を確認
↑このコマンドの活用方法がよくわからず原因とその解消方法がわからずじまいと言った状況です・・・

19:41:54 UID PID %usr %system %guest %CPU CPU Command 19:41:54 0 1 0.01 0.01 0.00 0.02 0 systemd 19:41:54 0 2 0.00 0.00 0.00 0.00 1 kthreadd 19:41:54 0 3 0.00 0.00 0.00 0.00 0 ksoftirqd/0 19:41:54 0 7 0.00 0.00 0.00 0.00 0 migration/0 19:41:54 0 9 0.00 0.05 0.00 0.05 0 rcu_sched 19:41:54 0 11 0.00 0.00 0.00 0.00 0 watchdog/0 19:41:54 0 12 0.00 0.00 0.00 0.00 1 watchdog/1 19:41:54 0 13 0.00 0.00 0.00 0.00 1 migration/1 19:41:54 0 14 0.00 0.00 0.00 0.00 1 ksoftirqd/1 19:41:54 0 17 0.00 0.00 0.00 0.00 2 watchdog/2 19:41:54 0 18 0.00 0.00 0.00 0.00 2 migration/2 19:41:54 0 19 0.00 0.00 0.00 0.00 2 ksoftirqd/2 19:41:54 0 25 0.00 0.00 0.00 0.00 0 khungtaskd 19:41:54 0 44 0.00 0.00 0.00 0.00 0 kswapd0 19:41:54 0 46 0.00 0.00 0.00 0.00 1 khugepaged 19:41:54 0 126 0.00 0.00 0.00 0.00 2 kauditd

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

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

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

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

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

guest

回答1

0

サーバーを起動していて突然、というのであれば

  • 突然の高トラフィック
  • 特定エンドポイントがリソースを使い切ってしまう

あたりを疑いますが、後者のような感じがあるので、まずはローカル環境等で、すべてのエンドポイントを調べる形でしょうか。
本番 API アプリケーションのログにリクエスト毎にかかっている時間も出ていたりすると思うので、それもヒントになるかと思います

投稿2020/07/24 16:53

編集2020/07/24 16:57
unhappychoice

総合スコア1531

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問