Digital Ocean Web 服务器 CPU 使用率过高

Digital Ocean Web 服务器 CPU 使用率过高

我们有一个 Laravel 网站,目前托管在 Digital Ocean (Nginx) 上。Droplet 有 2 个 vCPU、2 GB 内存、60 GB SSD、3 TB 传输,运行 PHP 7.4。我们发现 CPU 使用率每天都在稳步上升。

我们目前有 118 个休眠任务(我对此并不太担心),但是随着时间的推移,出现了几个 php-fpm 命令,有时总 CPU 使用率会飙升到 50-60% 左右。在使用 Digital Ocean 之前,我们已经在另一台服务器上运行过这个网站,CPU 一直处于 95-100% 左右。

以下是服务器上当前运行的占用大量 CPU 的进程的快照。这对于 Laravel 网站来说正常吗?这些 php-fpm 命令真的有必要吗?

top - 11:48:38 up 21 days, 22:46,  1 user,  load average: 0.65, 0.75, 0.79
Tasks: 120 total,   2 running, 118 sleeping,   0 stopped,   0 zombie
%Cpu(s): 41.8 us, 21.5 sy,  0.0 ni, 36.4 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
MiB Mem :   1987.6 total,    172.6 free,    291.9 used,   1523.1 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   1475.8 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 222902 www-data  20   0  242664  58356  37272 R  76.4   2.9   0:13.28 php-fpm: pool www
 222903 www-data  20   0  242652  57740  37208 S  26.6   2.8   0:01.80 php-fpm: pool www
 222901 www-data  20   0  242700  57480  37144 S  21.9   2.8   0:24.67 php-fpm: pool www
     11 root      20   0       0      0      0 I   0.3   0.0   5:25.41 [rcu_sched]
 167142 www-data  20   0  141972  15920   5384 S   0.3   0.8  29:09.38 nginx: worker process
      1 root      20   0  171116  12632   7848 S   0.0   0.6   1:28.61 /sbin/init
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.12 [kthreadd]
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [rcu_gp]
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [rcu_par_gp]
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [kworker/0:0H-kblockd]
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 [mm_percpu_wq]
     10 root      20   0       0      0      0 S   0.0   0.0   1:33.28 [ksoftirqd/0]

笔记:我们目前已在网站上启用 Cloudflare,截至 2 月 27 日,该网站仅对商店所在国家/地区(马耳他)开放。在此之前,Digital Ocean 图表显示 CPU 使用率最多上升至 4.5%。27 日之后,我们向大约 20 多个国家/地区开放了该网站 - 其中一些位于欧盟、澳大利亚和美国,并立即看到 CPU 使用率激增。

我担心的是,随着时间的推移和网站流量的增加,CPU 可能会达到无法恢复的程度,并且(如以前经历的那样)不幸的是网站将无法浏览。

非常感谢任何帮助、提示和建议。

提前致谢 :)

答案1

Laravel 并不是特别轻量级。你需要收集有关系统正在做什么的信息,分析数据并进行适当的更改。

查看您的 Web 服务器访问日志和 laravel 日志作为起点来确定系统上正在发生的活动。

确定事情是否确实存在问题,然后采取行动。

系统资源是用来使用的。您的系统似乎总体上使用率不高。

相关内容