AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1151456
Accepted
sw123456
sw123456
Asked: 2024-01-14 02:44:15 +0800 CST2024-01-14 02:44:15 +0800 CST 2024-01-14 02:44:15 +0800 CST

CPU 和 RAM 使用率较低时出现间歇性“高负载”

  • 772

我有一个托管在 Vultr HF 8CPU 服务器上的 WordPress 学习平台 (LearnDash) 网站。这太过分了,我的网站目前没有接近 CPU 或 RAM 限制。然而,有时站点“负载”会变高并且磁盘操作会激增。该网站仍然可以运行,但在一段时间内速度会变慢。

我仍在调查,但我相信这是一个 30 名左右的学生同时注册的情况(使用 WordPress 插件 uncanny groups 注册代码,在其中创建他们的帐户,然后立即分配给 LearnDash 课程和小组)。

考虑到高规格服务器,这种同时注册的方案真的会最大化磁盘读/写吗?或者它不太可能引起峰值?

当然,如果说 200 个用户同时进行测验(这种情况不会出现任何站点问题),由于不断读取和写入 DB,情况应该是类似的,但我的服务器可以正常处理。

我想还有其他网站有许多同时注册而不会减慢网站速度(暂时高负载)?

问题是,如果我是正确的,这些学生就会立即开始探索该网站,并且他们的第一堂课的负载会保持在很高的水平,并会影响该网站上的其他人。

通常我的网站可以毫无问题地处理 100 个并发用户,但似乎一群人一起注册是有问题的。

我对管理自己的服务器还很陌生,所以请友善。如果有人愿意就 1. 同时用户注册是否可能是问题以及 2. 如何缓解这个问题提供一些建议,我将非常感激。

已经联系了 Vultr 和我的控制面板“RunCloud”,他们都没有提供太多帮助。

high-load
  • 1 1 个回答
  • 147 Views

1 个回答

  • Voted
  1. Best Answer
    math
    2024-01-14T08:11:36+08:002024-01-14T08:11:36+08:00

    请记住负载是什么:在 cpu 上运行或可运行但正在等待资源(通常是 cpu 和/或磁盘)的进程数。很多人认为是cpu的原因,但等待磁盘往往是负载的原因。(我有时希望单独测量 cpu 和磁盘的负载,但这很复杂。)

    用于vmstat 3查看活动是什么 - 确保您没有破坏交换。(我在我的服务器上根本不使用交换 - 当尝试很好地关闭进程时,允许交换崩溃或花费很长时间进行分页是有风险的 - 我宁愿“快速失败”也不愿与服务器运行速度慢得令人难以置信。)

    尝试使用 iotop(1) 实用程序来查看是否可以找出正在使用磁盘的内容。但是,如果有许多短暂的进程正在冲击磁盘,您可能无法实时捕获它们。将事件与日志中的活动联系起来也可以为您提供帮助。

    您的插件可能存在一些病态的多线程方面,具体取决于数据库的使用方式。如果是 mysql/mariadb,请尝试echo "show full processlist;" | mysql | tee /tmp/somelogfile.log例如,并调查是否有长时间运行的查询正在访问磁盘甚至 CPU(我发现这通常与表上缺乏索引或构造不良的连接子句有关。您可以在 mysql 中的查询上使用“explain”来查看它们的用途。有关详细信息,请参阅有关 mysql 性能的文章。)

    如果在 mysql/服务器崩溃的情况下,您可以在事务中承受数秒的数据丢失,则可以调低 mysql 的默认 ACID 兼容设置(有关详细信息,请参阅 DBA stackexchange),这对于不支持 ACID 的工作负载来说可能过于激进。需要它,导致小写入的病态同步。

    确保您的数据库位于快速 SSD/nvme 上,而不是 HDD 上。调整 mysql(或您正在使用的任何数据库、postgres 等)中的缓存。无数文章描述了如何进行。

    软件负责负载,如果平台/服务器本身对于其他用途来说速度很快,那么它本身可能不是问题。

    • 1

相关问题

  • 重负载测试期间内存使用率非常低

  • 如何检查过去几天在 Digital Ocean 上触发高 CPU 使用率的原因?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve