1
环境准备
1.1
在openstack管理节点
1. 安装net-snmp-utils
yum install net-snmp-utils
2. 修改/etc/ceilometer/pipeline.yaml
修改/etc/ceilometer/pipeline.yaml,将下面resources下红色区域的IP换成计算节点的IP,有多个计算节点跟多个。
1.2
在openstack计算节点
1. 配置SNMP
1). 安装snmpd
# yum isntall net-snmp net-snmp-utils
2). 修改/etc/sysconfig/selinux:
SELINUX=disabled
3). 修改/etc/snmp/snmpd.conf文件:
在以下地方增加一条数据:
# Make at least snmpwalk -v 1 localhost -c public system fast again.
# name incl/excl subtree mask(optional)
# view systemview included .1.3.6.1.2.1.1
# view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1.3.6.1
4).重启服务
service snmpd restart
systemctl enable snmpd.service
5).在管理节点命令行中执行snmpwalk命令:
#snmpwalk -v 2c -c public <compute_node_ip>
如果有返回值,表示配置成功。
2.修改/etc/ceilometer/pipeline.yaml
3.修改/etc/nova/nova.conf
找到compute_monitors变量,将其值设置为:
compute_monitors=ComputeDriverCPUMonitor
网络IO和磁盘IO已经在默认配置里。
2
宿主机
sar工具(linux系统)
安装:
sar在sysstat包中,所以先用yum安装sysstat包.
(备注:sysstat是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如CPU使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于我们判断系统是否正常运行,是提高系统运行效率、安全运行服务器的得力助手)
1. 加载待测虚机的centos光盘
2. CRT连接待测虚拟机,mount光盘
mount -t iso9660 /dev/cdrom /media
3. 安装sysstat包
yum install sysstat
使用:
2.1
CPU
使用率:100-%idle 单位:%
使用-u选项,sar输出整体CPU的使用情况,不加选项时,默认使用的就是-u选项。以下命令显示采样时间为1s,采样次数为10次,整体CPU的使用情况:
输出项说明:
CPU all 表示统计信息为所有 CPU 的平均值。
%user 显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system 在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait 显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle 显示 CPU 空闲时间占用 CPU 总时间的百分比。
2.2
内存
使用率:memused 单位:%
使用-r选项可显示内存统计信息,以下命令显示以1秒为采样时间,显示10次内存信息:
输出项说明:
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
2.3
网络IO
网络接收:(ens32+ens34)rxpck/s 单位:packet/s
网络发送:(ens32+ens34)txpck/s 单位:packet/s
输出项说明:
IFACE: 网络接口名称
rxpck/s: 每秒收包的数量(packet/s)
txpck/s: 每秒发包的数量(packet/s)
rxkB/s: 每秒收的数据量(kB为单位)(kB/s)
txkB/s: 每秒发的数据量(kB为单位)(kB/s)
3
云主机
3.1
CPU
使用率:100-%idle 单位:%
使用量:MHz 用下面公式计算
云主机已使用cpu主频计算公式:
used_frequency = 宿主机CPU主频 * min(宿主机核心数量/已分配云主机vcpu数量总和, 1) * 云主机vcpus * cpu使用率
总量:
3.2
内存
使用率:%memused 单位:%
使用量:kbmemused/1024 单位:MB
总量
3.3
磁盘IO
磁盘读:bread/s* 磁盘数据块大小 单位:字节/秒
磁盘写:bwrtn/s* 磁盘数据块大小 单位:字节/秒
blocks/s转换成B/s的公式:
磁盘读写字节每秒 = 磁盘读写块每秒 * 磁盘数据块大小
(Bytes/s) (blocks/s) (Bytes/block)
输出项说明:
tps 每秒钟物理设备的 I/O 传输总量
rtps 每秒钟从物理设备读入的数据总量
wtps 每秒钟向物理设备写入的数据总量
bread/s 每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s 每秒钟向物理设备写入的数据量,单位为 块/s
3.4
网络IO
网络接收:(虚拟网卡ens32)rxkB/s*1024 单位:字节/秒
网络发送:(虚拟网卡ens32)txkB/s*1024 单位:字节/秒
附录
1.将监控数据输出为txt格式(sar工具)
- 将监控数据输出到一个txt文本文件中,然后通过more 来查看,也可导出该文件。
# sar -u 1 10 > test.txt
# more test.txt
- 通过-o 输出到一个二进制的文件中,是不能用文件内容查看工具more、less或cat来查看的,应该用sar工具来查看,要加-f参数。
# sar -u 1 4 -o test
# sar -f test
2提升内存使用率的方法
Linux把内存挂载成硬盘提高读写速度,VM(virtual memory)由RM+Swap两部分组成
# mount -t tmpfs -o size=20m tmpfs /mnt/tmp
说明:这条命令分配了上限为20m的VM到/mnt/tmp目录下,用df命令查看一下,确实/mnt/tmp挂载点显示的大小是20m,但是tmpfs一个优点就是它的大小是随着实际存储的容量而变化的,换句话说,假如/mnt/tmp目录下什么也没有,tmpfs并不占用VM。备注:必须在新挂的盘内写入数据,否则不占用内存
3.
提升cpu使用率的方法
在vm上跑死循环的shall脚本。
#!/bin/bash
while true
do
i=1111111111111111111111111*22222222222222222222
echo "i"
/usr/bin/firefox http://www.baidu.com
done
一行命令增加cpu使用率
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
执行pkill -9 dd 释放cpu
cpu主频变动
4.
测试磁盘读写
iostat (I/O statistics)输入/输出统计,主要功能是对系统的磁盘I/O操作进行监视。
iostat -d 2 3 查看系统磁盘的使用状况
(1)Blk_read/s
表示每秒读取的数据块数
(2)Blk_wrtn/s表示每秒写入的数据块数
(3)Blk_read表示读取的所有块数
(4)Blk_wrtn
表示写入的所有块数
iostat -x /dev/sda 2 3 与sar -d
输出基本相同
(1)rrqm/s
表示每秒进行合并的读操作数目
(2)wrqm/s
表示每秒进行合并的写操作数目
(3)r/s表示每秒完成读I/O设备的次数
(4)w/s表示每秒完成写I/O设备的次数。
(5)rsec/s表示每秒读取的扇区数
(6)wsec/s表示每秒写入的扇区数。