Ubuntu 18.04版本的ECS实例中启动安骑士进程后系统平均负载较高

Ubuntu 18.04版本的ECS实例中启动安骑士进程后系统平均负载较高

更新时间:2020-08-10 14:31:29

免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

问题描述

Ubuntu 18.04版本的ECS实例中,启动安骑士进程(AliYunDun)后,系统平均负载较高。关闭安骑士进程(AliYunDun)后,系统平均负载(Load Average)恢复正常。

问题原因

Ubuntu系统的某些内核(Kernal)版本中,nanosleep()函数和usleep()函数的CPU使用计算方式存在缺陷,当有程序进程调用这两个函数时,系统平均负载显示较高。目前已知存在此缺陷的内核版本如下:

  • 4.15.0-72
  • 4.15.0-74

安骑士会调用上述函数,因此启动安骑士进程后,ECS实例中显示系统平均负载较高。使用上述内核版本的Ubuntu系统均存在同样的缺陷,例如Ubuntu 18.04。更多有关此缺陷的信息,请参见以下文档:

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

此缺陷可能不止存在于上述已知的内核版本中,其他版本的内核可能也存在此缺陷。为进一步确认安骑士进程是否受到此缺陷影响,需要在您的Ubuntu实例中运行测试程序,并根据测试结果进行处理,详情如下:

说明:为保证测试的准确性,以及避免影响其他服务程序,建议对您的Ubuntu实例生成自定义镜像,通过自定义镜像创建一个用于测试的临时ECS实例(按量付费)。测试完成后释放该临时ECS实例。关于如何创建自定义镜像,请参见创建自定义镜像

  1. 下载测试程序test_high_cpu_load.zip
    说明test_high_cpu_load.zip的MD5值为1795f7825c4aad6d466287c0ca11d05d
  2. 解压缩后进入test_high_cpu_load文件夹。确认存在以下两个文件:
    • test_high_cpu_load_x64
      适用于64位系统的测试程序。
    • test_high_cpu_load.cpp
      测试程序的源代码。如果您的Ubuntu实例为32位系统,可通过gcc编译此文件,然后运行编译后的32位程序进行测试。
  3. 远程连接Ubuntu实例。连接方式请参见连接方式概述
  4. 根据Ubuntu实例的系统位数,上传对应的测试程序到Ubuntu实例中。
    说明:您可以通过getconf LONG_BIT命令查询系统位数。
  5. 执行以下命令,为测试程序附加执行权限。
    chmod +x test_high_cpu_load_x64
    说明:此处以64位的测试程序为例。如果您的Ubuntu实例为32位系统,请更换为32位程序的文件名。
  6. 运行测试程序。同时开启一个新的终端窗口,执行top命令,观察2分钟~3分钟,记录系统的平均负载。
  7. 根据测试结果,结合以下情况进行处理:
    • 系统平均负载大于0.5
      测试程序持续调用usleep()函数,如果系统平均负载大于0.5,说明实例的内核版本存在本文介绍的内核缺陷。因此安骑士进程的CPU使用率较高问题也是内核缺陷导致的。您可以参考以下方案处理:
      • 更换Ubuntu系统版本
        推荐此方案,您可以使用其他版本的Ubuntu系统,例如Ubuntu 16。关于如何更换ECS实例的操作系统,请参见更换操作系统
      • 等待Ubuntu官方修复缺陷
        Ubuntu官方未来会修复此缺陷,届时您可以通过升级系统来解决此问题。
      • 暂时忽略此问题
        此问题是CPU使用率计算方式存在缺陷,对您不会造成实际的影响,您可以选择忽略此问题。
      • 重新编译并升级系统内核
        警告:不推荐此方案,风险较高。请谨慎操作。操作前务必通过快照备份ECS实例。
        如果您有内核升级经验,并且急需解决此问题,您可以通过补丁重新编译并升级系统内核。详情请参见第三方社区提供的解决方案
    • 系统平均负载小于0.5
      如果系统平均负载小于0.5,同时安骑士进程的CPU使用率较高,请记录系统负载信息并提交工单联系阿里云技术支持。

适用于

  • 云服务器ECS
  • 安骑士