nova-conductor单个进程占用CPU 100%

nova-conductor进程在运行时,其中单个进程会周期性的占用CPU 100%的使用率,周期大约2分钟。经调试和排查,发现原因在于nova-conductor在执行某一数据库操作时,请求数据量巨大, 仅数据库查找耗时10s,返回数据大小在2MB。导致数据在进行序列化和解序列化时耗尽CPU,并持续时间较长。详情如下:

操作请求:object_class_action

请求参数:{u‘objver‘: u‘1.6‘, u‘objmethod‘: u‘get_by_filters‘, u‘args‘: [{u‘deleted‘: True, u‘soft_deleted‘: False, u‘host‘: u‘node-144}], u‘objname‘: u‘InstanceList‘, u‘kwargs‘: {u‘use_slave‘: True}

功能:根据host信息查询该计算节点上所有已删除实例的信息,注意这里获取instance数据库信息的filter的deleted=True。这里是获取node-144计算节点上所有已删除实例的数据库信息,执行时间140.429696083s,此间CPU利用率基本处于100%。随着openstack系统的持续运行,数据库中的删除虚拟机信息将会越来越多,该数据查找操作也会继续变大,CPU耗时也将越长。node-144上进行创建删除的虚拟机较多,所以查询的时间最长,占用CPU 100%的时间也最长,对于其它计算节点上的InstanceList查询会持续在10s左右。

请求者: nova-compute

执行该请求的函数(不完全统计):

  • _run_pending_deletes (定时任务,默认3m执行一次)
  • _cleanup_running_deleted_instances(定时任务,默认30m执行一次)

建议:

定期清理数据库!

时间: 2024-08-03 23:54:15

nova-conductor单个进程占用CPU 100%的相关文章

PHP CGI 进程占用CPU过高导致CPU使用达到100%的另类原因

由于使用的华为云的CDN加速,结果发现我的阿里云服务器突然卡顿,网页打开极慢.登陆华为云CDN管理后台发现最高带宽占用30M,流量短时间内达到10GB以上,这么大的流量我的服务器肯定扛不住啊.于是还跟华为云进行了一个撕逼,然后果断弃了华为云. 但是更换了其他CDN或者WAF之后,CPU占用依然居高不下,网上找了很多办法都不管用. 看了下是 PHP CGI 进程占用CPU最多,而且经过检测发现是 浏览器内核检测 网站的 PHP CGI 占用最高,其他的很少.然而看第三方网站统计,并没有很大的访问量

jboss 占用cpu 100%

通过Java thread dump分析找到耗费CPU最高的源代码 分类: 9. Java2010-04-11 23:06 9272人阅读 评论(4) 收藏 举报 threadjavaeclipse插件redhatjbosslinux 通过Java thread dump分析找到耗费CPU最高的源代码 作者:胡家辉 2010-04-11 最近产品在运行过程中出现了性能问题,在很低的流量的情况下CPU就达到40%,流量稍高时CPU就达到98%. 产品是Java写的,运行于JBOSS平台.操作系统为

php-cgi进程占用cpu资源过大原因分析及解决

一,开启日志记录,为以后排查做准备 1.1 开启php-fpm.conf的错误日志和慢执行日志和常规日志, 采样一个小时,就可以根据这些日志的内容进行分析问题error_log = /tmp/error.log //错误日志access.log = /tmp/access.$pool.log //常规日志,记录每次访问时间,记录不同参数,以防止恶意攻击,后面会详细解析access.format = "%R – %u %t \"%m %r%Q%q\" %s %f %{mili}

Apache服务器httpd.exe进程占用cpu超过50%的解决方法

httpd.exe进程占用cpu超过50%,关闭掉Apache服务,cpu应用率立刻下降到0.  重新启动Apache又出现占用cpu高的情况.  原因是:httpd.exe和防火墙配置有冲突. 解决方法如下: 1.网上邻居->本地链接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉起用LMhosts查询前的勾. 2.控制面版->windows防火墙->高级标签->本地链接设置->服务的标签里勾选安全

Java虚拟机六:Java进程占用cpu过高问题分析

在平时开发过程中,经常会碰到Java进程占用cpu过高的现象,本篇将简单记录一下自己分析该类问题的步骤. 1.使用 top -p <pid> 命令(<pid>为Java进程的id号)查看Java进程的cpu占用: 该Java进程占用cpu达到92.2%. 2.使用 top -Hp <pid>  命令(<pid>为Java进程的id号)查看该Java进程内所有线程的资源占用情况(按shft+p按照cpu占用进行排序,按shift+m按照内存占用进行排序)此处按

使用dotnet-dump 查找 .net core 3.0 占用CPU 100%的原因

公司的产品一直紧跟 .net core 3.0 preview 不断升级, 部署到 Linux 服务器后, 偶尔会出现某个进程CPU占用100%. 由于服务部署在云上, 不能使用远程调试; 在局域网内的Linux 服务器 或 Windows开发机上又不能重现这个问题, 联想到Java的jstack, 很是羡慕啊. 想到.net core 已经出来这么久了, 还是试着找找看吧, 结果还真找到一篇博客Introducing diagnostics improvements in .NET Core

java进程占用cpu过高分析是哪些线程

拿hbase基准测试列子来分析哪些线程使用比较高的cpu,环境是linux,基准测试命令: hbase org.apache.hadoop.hbase.PerformanceEvaluation  --rows=500000 --nomapred --presplit=5 --writeToWAL=true randomWrite 5 首先查看占用cpu最高的进程和线程id,执行命令: [[email protected] logs]$ ps Hh -eo pid,tid,pcpu | sort

解决linux 系统中Mysql 进程占用CPU 300%故障

今日接到同事的电话,说微信公共帐号中的游戏无法登陆,用户不能玩了,麻烦尽快解决. 1.登陆IDC机房查看服务器流量图,流量正常,排除故障与流量无关. 2.登陆微信公共帐号中的游戏所在服务器发现系统互载过高,mysql进程CPU使用率超过300%. 为了快速解决问题直接重启mysql服务后,再查sysql进程CPU使用率依旧高居不下.故障还没有解决,继续寻找原因. 3.登陆mysql数据库,执行show processlist;查看当前正在执行的sql语句,发现几个表出现"sending data

linux下查找java进程占用CPU过高原因

1. 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714,12406占用过高cpu. 2.查找线程 使用top -H -p <pid>查看线程占用情况 3.查找java的堆栈信息 将线程id转换成十六进制 #printf %x 15664 #3d30 然后再使用jstack查询线程的堆栈信息 语法:jstack <pid> | grep -a 线程id(十六进制) jstack <pid> | grep -a 3d30 这样就找出了有问题的代码了