何が私のCPUをつかむのですか?

何が私のCPUをつかむのですか?

私は難しい状況に直面しています。 100%CPUですが、topまたはhtopで単一のプロセスが多用されていることはわかりません。

次のコマンドを実行します。

:~$ ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10
%CPU   PID USER     COMMAND
 5.1    34 root     [kswapd0]
 2.4     1 root     /sbin/init
 2.3  1815 mysql    /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
 0.6 25583 super    top
 0.5 12964 mysite /usr/bin/php-cgi7.2
 0.4 13313 mysite /usr/bin/php-cgi7.2
 0.4 13311 mysite /usr/bin/php-cgi7.2
 0.4 13310 mysite /usr/bin/php-cgi7.2
 0.4 13309 mysite /usr/bin/php-cgi7.2

これはtopとhtopが100%CPUを表示する理由を説明しません。

top - 22:17:15 up  3:14,  2 users,  load average: 104.14, 102.73, 87.49
Tasks: 392 total, 103 running, 251 sleeping,   1 stopped,   0 zombie
%Cpu(s): 25.7 us, 72.7 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  1.6 si,  0.0 st
KiB Mem :  2040972 total,    77924 free,  1666072 used,   296976 buff/cache
KiB Swap:  3906244 total,  1093324 free,  2812920 used.   187268 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
   34 root      20   0       0      0      0 S 17.7  0.0  11:06.77 kswapd0
 1815 mysql     20   0 1395428  24804    600 S  7.2  1.2   4:11.76 mysqld
    1 root      20   0  225472   4396   2768 S  4.6  0.2   4:50.26 systemd
31359 root      20   0  189660  68472   2124 R  2.0  3.4   0:02.34 /usr/share/webm
12975 mysite  20   0  522728  16780   2500 R  1.0  0.8   0:08.91 php-cgi7.2
13278 mysite  20   0  522728  17000   5372 R  1.0  0.8   0:08.27 php-cgi7.2
13311 mysite  20   0  522728  16468   3092 R  1.0  0.8   0:08.07 php-cgi7.2
28715 super     20   0   32716   2112   1108 S  1.0  0.1   0:04.79 htop
    7 root      20   0       0      0      0 R  0.7  0.0   0:23.60 ksoftirqd/0
12964 mysite  20   0  522728  17032   2504 R  0.7  0.8   0:09.36 php-cgi7.2
13008 mysite  20   0  522728  15728   2752 R  0.7  0.8   0:08.70 php-cgi7.2
13031 mysite  20   0  522728  18820   5808 R  0.7  0.9   0:08.72 php-cgi7.2
13039 mysite  20   0  522728  15856   2412 R  0.7  0.8   0:08.75 php-cgi7.2
13053 www-data  20   0  199312   6332   4336 R  0.7  0.3   0:00.46 apache2
13085 mysite  20   0  522728  16700   2440 R  0.7  0.8   0:08.60 php-cgi7.2
13094 www-data  20   0  199312   6896   4608 R  0.7  0.3   0:00.49 apache2
13125 mysite  20   0  522728  11152   2764 R  0.7  0.5   0:08.54 php-cgi7.2
13134 mysite  20   0  522728  19504   2780 R  0.7  1.0   0:08.58 php-cgi7.2
13161 mysite  20   0  522728  15324   2728 R  0.7  0.8   0:08.55 php-cgi7.2
13164 mysite  20   0  522728  15444   2480 R  0.7  0.8   0:08.54 php-cgi7.2
13174 mysite  20   0  522728  11712   2816 R  0.7  0.6   0:08.65 php-cgi7.2
13178 mysite  20   0  522728  12808   2768 R  0.7  0.6   0:08.57 php-cgi7.2
13185 mysite  20   0  522728  16080   2388 R  0.7  0.8   0:08.51 php-cgi7.2
13208 mysite  20   0  522728  13268   2424 R  0.7  0.7   0:08.38 php-cgi7.2
13210 mysite  20   0  522728  12744   2824 R  0.7  0.6   0:08.42 php-cgi7.2
13229 mysite  20   0  522728  15552   2704 R  0.7  0.8   0:08.46 php-cgi7.2
13230 mysite  20   0  522728  14944   2484 R  0.7  0.7   0:08.43 php-cgi7.2
13235 mysite  20   0  522728  15592   2468 R  0.7  0.8   0:08.42 php-cgi7.2
13236 mysite  20   0  522728  13832   2724 R  0.7  0.7   0:08.34 php-cgi7.2
13267 mysite  20   0  522728  16212   2488 R  0.7  0.8   0:08.36 php-cgi7.2
13275 mysite  20   0  522728  16228   3036 R  0.7  0.8   0:08.28 php-cgi7.2
13280 mysite  20   0  522728  15872   3140 R  0.7  0.8   0:08.23 php-cgi7.2
13284 mysite  20   0  522728  17144   5536 R  0.7  0.8   0:08.14 php-cgi7.2
13287 mysite  20   0  522728  15416   6132 R  0.7  0.8   0:08.31 php-cgi7.2
13288 mysite  20   0  522728  16024   3088 R  0.7  0.8   0:08.17 php-cgi7.2
13289 mysite  20   0  522728  14048   6344 R  0.7  0.7   0:08.23 php-cgi7.2
13291 mysite  20   0  522728  16468   2828 R  0.7  0.8   0:08.09 php-cgi7.2
13294 mysite  20   0  522728  15120   6196 R  0.7  0.7   0:08.16 php-cgi7.2
13296 mysite  20   0  522728  11564   3236 R  0.7  0.6   0:08.10 php-cgi7.2
13300 mysite  20   0  522728  17032   3104 R  0.7  0.8   0:08.15 php-cgi7.2
13303 mysite  20   0  522728  15636   3108 R  0.7  0.8   0:08.19 php-cgi7.2
13306 mysite  20   0  522728  17340   5720 R  0.7  0.8   0:08.12 php-cgi7.2

私はこれを試しました:mySQLを停止し、CPUが20%〜30%の範囲(主にhtopのapacheプロセス)に落ちました。 Apacheを停止しましたが、CPUが0%から2%の範囲に低下しました。 mySQLを起動しましたが、CPUが0%〜2%の範囲で停止しました。 Apacheを起動しましたが、CPUはすぐに100%に達しました。

サーバーが100%にもかかわらず、ワークベンチを使用してmySQLと通信できます(インポートは0.08秒ではなく2秒で完了しますが)。しかし、Apacheはまったく役に立たず、タイムアウトします。助けてくれてありがとう。

アップデート#1

1%cpuを超える7つの大きなプロセスがあります(合計49.4%cpu)。

303 mysql   15.00%  /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
            
34  root    10.40%  [kswapd0]
12926   root    10.10%  [/usr/share/webm] <defunct>
13082   root    5.80%   /usr/share/webmin/authentic-theme/stats.cgi
10154   root    2.90%   /usr/share/webmin/virtual-server/collectinfo.pl
1   root    2.50%   /sbin/init
32750   super   1.10%   htop

たとえば、100のプロセスがあります(CPU全体の40%)。

mysite 0.40%    /usr/bin/php-cgi7.2

6つの小さなプロセス<1%cpu(合計1.6%cpu)があります。

<0.0%cpu (??% CPU total) などの 152 の小さなプロセスがあります。

www-data    0.0%    /usr/sbin/apache2 -k start

134個の小さなプロセス<0.0%cpu(合計%cpu)があります。

残りのプロセスの総数は91%であるため、152個と134個の小さなプロセスの総数は約9%にする必要があります。

アップデート#2 なぜ152のApacheプロセスが実行されているのですか?これは私のApache mpm_prefork.confファイルです。 MaxRequestWorkersの制限に達したと思いますか?

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers       5
    MaxSpareServers      10
    MaxRequestWorkers     150
    MaxConnectionsPerChild   0
</IfModule>

私のサーバーは攻撃を受けていますか?それとも正常ですか?すべてを削除して最初からインストールする前に、この問題を解決する方法についてのアイデアはありますか?

アップデート#3

私はこれがDoS攻撃だと思います。 VPSコントロールパネル(VPS自体の外部)にファイアウォールを作成し、プライベートIPからの着信トラフィックのみを許可しました。 CPUが0.7%に低下しました。 1日の朝にゲストが100倍に増えていないようです!私のVPSプロバイダは現在、この問題を解決するよう努めています。更新します。

関連情報