openstack内存占用清理

公司使用openstack定制开发了云桌面平台提供给客户使用,架构是3台控制节点+N台计算节点+N台CEPH+cinder。使用一直较为稳定,今天部份客户反映双击云主机图标无法进入云桌面、或者需要多次点击方可进入云桌面。经过检查是因为2台控制节点内存占用过高导致,需要清理。下面是详细操作过程。

1、查看控制节点内存占用

[[email protected] ~]# top
top - 15:29:40 up 18 days, 17:15,  1 user,  load average: 1.27, 1.83, 2.09
Tasks: 1062 total,   6 running, 1056 sleeping,   0 stopped,   0 zombie
Cpu(s): 12.2%us,  1.1%sy,  0.0%ni, 86.4%id,  0.1%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  99032136k total, 97932848k used,  1099288k free,   233100k buffers
Swap: 33554428k total,   295916k used, 33258512k free, 38017888k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                        2926 rabbitmq  20   0 2904m 449m 2676 S 97.4  0.5   0:12.85 beam.smp                     1868 root      10 -10 44932  11m 7240 S 15.0  0.0   2149:53 ovs-vswitchd                 7982 mysql     -2   0 24.8g 2.8g 138m S  9.4  3.0   4617:11 mysqld                        ......

"Mem:  99032136k total, 97932848k used",可以看到 控制节点内存已用满

控制节点查看nova服务状态:

[[email protected] ~]# nova-manage service list
Binary           Host                                 Zone             Status     State Updated_At
nova-consoleauth node-6.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:39
nova-scheduler   node-6.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:40
nova-conductor   node-6.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:49
nova-cert        node-6.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:47
nova-consoleauth node-7.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:43
nova-scheduler   node-7.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:48
nova-conductor   node-7.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:48
nova-consoleauth node-8.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:39
nova-scheduler   node-8.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:42
nova-conductor   node-8.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:48
nova-cert        node-7.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:41
nova-cert        node-8.domain.tld                    internal         enabled    :-)   2017-05-04 07:26:39
nova-compute     node-4.domain.tld                    nova             disabled   :-)   2017-05-04 07:26:40
nova-compute     node-10.domain.tld                   nova             enabled    :-)   2017-05-04 07:26:47
nova-compute     node-15.domain.tld                   nova             enabled    :-)   2017-05-04 07:26:44
nova-compute     node-16.domain.tld                   nova             enabled    :-)   2017-05-04 07:26:45
nova-compute     node-11.domain.tld                   nova             enabled    :-)   2017-05-04 07:26:41
nova-compute     node-17.domain.tld                   nova             enabled    :-)   2017-05-04 07:26:39
nova-compute     node-5.domain.tld                    nova             enabled    :-)   2017-05-04 07:26:46
nova-compute     node-9.domain.tld                    nova             enabled    :-)   2017-05-04 07:26:41
nova-compute     node-13.domain.tld                   nova             enabled    :-)   2017-05-04 07:26:42
nova-compute     node-14.domain.tld                   nova             enabled    :-)   2017-05-04 07:26:46
nova-compute     node-12.domain.tld                   nova             enabled    :-)   2017-05-04 07:26:41
nova-compute     node-26.domain.tld                   nova             enabled    :-)   2017-05-04 07:26:48

在控制节点查看了内存占用及nova服务状态控制。node-4 libvirtd服务disabled,一般在该计算节点用“/etc/init.d/libvirtd restart”重启即可。虽然linux有内存管理机制,但目前服务器内存用满不会自动下降,却容易导致各节点通讯失败。导致用户“双击云主机图标无法进入云桌面”,只能人工介入处理清理内存。

当前的处理过程是  清理控制节点内存-->重启控制节点rabbitmy-server服务--> 重启各计算节点nova-compute服务。当然清理内存也有风险,可能导致在用用户云主机断开影响操作体验。

2、第一台控制节点清理内存,重启rabbitmy-server服务

[[email protected] ~]# sync
[[email protected] ~]# echo 3 > /proc/sys/vm/drop_caches
[[email protected] ~]# top
top - 15:30:47 up 18 days, 17:16,  1 user,  load average: 1.29, 1.73, 2.04
Tasks: 1063 total,   4 running, 1059 sleeping,   0 stopped,   0 zombie
Cpu(s): 12.2%us,  1.1%sy,  0.0%ni, 86.4%id,  0.1%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:  99032136k total, 59740848k used, 39291288k free,     9576k buffers
Swap: 33554428k total,   295916k used, 33258512k free,   214468k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                         2926 rabbitmq  20   0 3222m 735m 2676 S 35.4  0.8   0:19.17 beam.smp                     
 8392 keystone  20   0  423m  66m 3524 S 20.5  0.1  15:43.19 keystone-all             
 1868 root      10 -10 44932  11m 7240 S 14.9  0.0   2150:02 ovs-vswitchd             
 7982 mysql     -2   0 24.8g 2.8g 138m S  9.3  3.0   4617:44 mysqld                           ......                                                                                                                    
 [[email protected] ~]# /etc/init.d/rabbitmq-server restart
Restarting rabbitmq-server: FAILED - check /var/log/rabbitmq/shutdown_log, _err
RabbitMQ is going to make 3 attempts to find master node and start.
3 attempts left to start RabbitMQ Server before consider start failed.
SUCCESS
Setting policy "ha-all" for pattern "." to "{\"ha-mode\":\"all\", \"ha-sync-mode\":\"automatic\"}" with priority "0" ...
...done.
rabbitmq-server.
 
 [[email protected] ~]# ssh node-7
Warning: Permanently added ‘node-7,192.168.10.6‘ (RSA) to the list of known hosts.
Last login: Tue May  2 09:40:05 2017 from 192.168.10.4

3、第二台控制节点清理内存:

[[email protected] ~]# top
top - 15:30:53 up 44 days, 6 min,  1 user,  load average: 1.33, 1.44, 1.63
Tasks: 1081 total,   5 running, 1076 sleeping,   0 stopped,   0 zombie
Cpu(s): 11.3%us,  1.0%sy,  0.0%ni, 87.5%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:  99032136k total, 98589812k used,   442324k free,   273588k buffers
Swap: 33554428k total,   141844k used, 33412584k free, 35998936k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                       
12728 neutron   20   0  549m 216m 2016 S 37.7  0.2  15:41.11 neutron-server              26690 keystone  20   0  327m  66m 3428 R 24.5  0.1  13:40.80 keystone-all            
26698 keystone  20   0  327m  67m 3428 S 16.9  0.1  12:57.10 keystone-all         
19852 nova      20   0  555m 197m 3332 S 15.1  0.2 502:36.04 nova-api                    
1936 root      10 -10 47608  14m 7220 S  9.4  0.0   3790:59 ovs-vswitchd                                                                                                          [[email protected] ~]# sync  
[[email protected] ~]# echo 3 > /proc/sys/vm/drop_caches
[[email protected] ~]# /etc/init.d/rabbitmq-server restart
Restarting rabbitmq-server: rmdir: failed to remove `/var/run/rabbitmq‘: Directory not empty
RabbitMQ is going to make 3 attempts to find master node and start.
3 attempts left to start RabbitMQ Server before consider start failed.
SUCCESS
Setting policy "ha-all" for pattern "." to "{\"ha-mode\":\"all\", \"ha-sync-mode\":\"automatic\"}" with priority "0" ...
...done.
rabbitmq-server.

4、重启计算节点的nova-compute服务。

[[email protected] ~]# ssh node-4
Warning: Permanently added ‘node-4,192.168.10.2‘ (RSA) to the list of known hosts.
Last login: Thu May  4 15:31:29 2017 from 192.168.10.6
[[email protected] ~]# /etc/init.d/libvirtd restart
Stopping libvirtd daemon:                                  [FAILED]
Starting libvirtd daemon:                                  [  OK  ]
[[email protected] ~]# /etc/init.d/openstack-nova-compute restart
Stopping openstack-nova-compute:                           [FAILED]
Starting openstack-nova-compute:                           [  OK  ]
[[email protected] ~]# exit
logout
Connection to node-4 closed.

5、在控制节点上查看各节点nova服务状态

[[email protected]
Binary           Host                                 Zone             Status     State Updated_At
nova-consoleauth node-6.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:09
nova-scheduler   node-6.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:10
nova-conductor   node-6.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:16
nova-cert        node-6.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:07
nova-consoleauth node-7.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:13
nova-scheduler   node-7.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:08
nova-conductor   node-7.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:16
nova-consoleauth node-8.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:09
nova-scheduler   node-8.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:12
nova-conductor   node-8.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:16
nova-cert        node-7.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:11
nova-cert        node-8.domain.tld                    internal         enabled    :-)   2017-05-04 07:32:09
nova-compute     node-4.domain.tld                    nova             enabled    :-)   2017-05-04 07:32:05
nova-compute     node-10.domain.tld                   nova             enabled    :-)   2017-05-04 07:32:07
nova-compute     node-15.domain.tld                   nova             enabled    :-)   2017-05-04 07:32:06
nova-compute     node-16.domain.tld                   nova             enabled    :-)   2017-05-04 07:32:10
nova-compute     node-11.domain.tld                   nova             enabled    :-)   2017-05-04 07:32:12
nova-compute     node-17.domain.tld                   nova             enabled    :-)   2017-05-04 07:32:14
nova-compute     node-5.domain.tld                    nova             enabled    :-)   2017-05-04 07:32:16
nova-compute     node-9.domain.tld                    nova             enabled    :-)   2017-05-04 07:32:11
nova-compute     node-13.domain.tld                   nova             enabled    :-)   2017-05-04 07:32:12
nova-compute     node-14.domain.tld                   nova             enabled    :-)   2017-05-04 07:32:13
nova-compute     node-12.domain.tld                   nova             enabled    :-)   2017-05-04 07:32:15
nova-compute     node-26.domain.tld                   nova             enabled    :-)   2017-05-04 07:32:11

6、各节点nova服务已正常。一般来说,重启了控制的rabbitmq-server,也可以重启各计算的nova-compute服务,以重新建立连接(根据实际情况判断是否需要)。

计算节点node-5重启libvirtd及openstack-nova-compute服务

[[email protected] ~]# ssh node-5
Warning: Permanently added ‘node-5,192.168.10.3‘ (RSA) to the list of known hosts.
Last login: Sat Apr 22 10:37:43 2017 from 192.168.10.4
[[email protected] ~]# /etc/init.d/libvirtd restart
Stopping libvirtd daemon:                                  [  OK  ]
Starting libvirtd daemon:                                  [  OK  ]
[[email protected] ~]# /etc/init.d/open
openstack-nova-compute  openvswitch             
[[email protected] ~]# /etc/init.d/openstack-nova-compute restart
Stopping openstack-nova-compute:                           [  OK  ]
Starting openstack-nova-compute:                           [  OK  ]

计算节点node-9重启libvirtd及openstack-nova-compute服务

[[email protected] ~]# /etc/init.d/libvirtd restart
Stopping libvirtd daemon:                                  [  OK  ]
Starting libvirtd daemon:                                  [  OK  ]
[[email protected] ~]# /etc/init.d/openstack-nova-compute restart
Stopping openstack-nova-compute:                           [  OK  ]
Starting openstack-nova-compute:                           [  OK  ]

计算节点node-10重启libvirtd及openstack-nova-compute服务

[[email protected] ~]# ssh node-10
Warning: Permanently added ‘node-10,192.168.10.9‘ (RSA) to the list of known hosts.
Last login: Tue Apr 25 16:30:26 2017 from 192.168.10.6
[[email protected] ~]# /etc/init.d/libvirtd restart
Stopping libvirtd daemon:                                  [  OK  ]
Starting libvirtd daemon:                                  [  OK  ]
[[email protected] ~]# /etc/init.d/openstack-nova-compute restart
Stopping openstack-nova-compute:                           [  OK  ]
Starting openstack-nova-compute:                           [  OK  ]

......重复操作。

时间: 2024-08-10 14:55:09

openstack内存占用清理的相关文章

统计php-fpm内存占用

查看php-fpm的内存占用 1.查看php-fpm的进程个数 ps -ef |grep "php-fpm"|grep "pool"|wc -l 2.查看每个php-fpm占用的内存大小 ps -ylC php-fpm --sort:rss 3.查看PHP-FPM在你的机器上的平均内存占用 ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("

服务器内存占用导致死机原因

最近,服务器经常死机. 1.第一步,登录服务器用top命令查看.内存占满了.2.第二步,观察,一共16G的内存,内存占用,每天增加6G.3.第三步,缓存区的内存占比很大. 用命令free -g 5 或free -m 5即每5秒观察内存情况. 为了永久释放该内存.我编辑了这个文件.在/etc/sysctl.conf文件中配置:vm.drop_caches=1/2/3,然后sysctl -p生效! 然后再写了一个定时脚本.(应该是写了这个脚本就不用改上面的配置,但为了保险,我还是两种方法都用上了.如

利用linux的df和du命令查看文件和目录的内存占用

文章目录 当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力. du可以查看文件及文件夹的大小. 两者配合使用,非常有效.比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结. 做后台开发经常遇到磁盘占满的情况,毕竟不断有日志在生成,不断有文件在备份,如果长时间不管的话,总有一天会占用满. 题主有一天在发布java项目的时候,就发现提示 1 No space

如何分析进程的内存占用问题

一共推荐三种分析内存占用的方式 1.vmmap.exe 属于SysinternalsSuite中的工具,很强大,可以方便的查看特定进程的内存总大小(Size).内存的提交大小(Committed).内存专用工作集等(Private WS)等,也可以启动一个进程定时生成快照. 具体各名词介绍可以参考工具的help,或者参考如下文章: vmmap介绍与下载地址:https://technet.microsoft.com/en-us/sysinternals/vmmap vmmap用法介绍:http:

修改oracle内存占用

进入系统, 进入系统, # su oracle $cd $ORACLE_HOME $./sqlplus /nolog >connect / as sysdba; >show parameter sga; (查看内存占用情况) NAME TYPE VALUE ------------------------------------ ----------- ------------- lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max

pvr与png的内存占用

Zwoptex生成的spritesheet除了可以导出png格式的图片外还有pvr格式.pvr格式是iOS的显示芯片可以直接读取的,不需要经过解析就能直接显示,所以渲染速度更快,更节省内存. 我特意在cocos2D 2.0 rc1版本做了一项测试: 一个空的cocos2D模版工程运行起来之后占用的内存大约是4MB. 直接用CCSprite显示一张2048*1024的数据格式为RGBA565的PNG图片之后,内存占用达到了20MB. 同样的情况下换成pvr格式之后,内存占用为16MB.也就是说pn

CLR Profile解决内存占用过高

CLR Profile解决内存占用过高的问题 炮哥:"嘿,哥们,忙啥呢,电脑卡成这逼样." 勇哥:"在用CLR Profile工具分析下FlexiPrint的内存占用情况." 炮哥:“哎哟,不错啊,玩高级的了.” 勇哥:“也没有啊,就是发现点击查询按钮查询数据时,如果数据量一大的话,内存上上升了好几个M,所以第一感觉就不太正常.正好以前也了解过CLR Profile,但一直没怎么具休的用过,这次正好拿来研究研究.” 炮哥:“Nice job,要向你学习,能够主动发现

虚函数列表: 取出方法 // 虚函数工作原理和(虚)继承类的内存占用大小计算 32位机器上 sizeof(void *) // 4byte

#include <iostream> using namespace std; class A { public: A(){} virtual void geta(){ cout << "A:A" <<endl; } virtual void getb(){ cout << "A:B" <<endl; } }; class B :public A{ public: B(){} virtual void g

关于Android中图片大小、内存占用与drawable文件夹关系的研究与分析

从上一篇文章<Android屏幕适配全攻略>写完之后,经常会有朋友问我这个问题:"能不能一个App只提供一套切图适应所有的分辨率呢?"我觉得有必要写一篇文章来研究一下这个问题,所以就有了这篇文章. 研究内容 研究方法 测试环境 研究过程 结果分析 结论 另外一个难以解释的问题 研究内容 本篇内容主要探讨以下场景:同一张图片,放置在不同的drawable文件夹,在同一设备上运行,对图片大小及内存占用有什么影响. 研究方法 控制变量法 分析法 测试环境 采用锤子T1手机(108