针对主机CPU idle性能情况需求脚本编写
【环境介绍】
系统环境:Linux + osw + python 2.7.10
【背景描述】
需求:当系统服务器出现性能告警的时候,需要定位具体的时间点来进行有针对性的去查询产生的问题。OSW提供了很好的数据采取,同时也有图形显示看出性能问题的时间点,但是反映发现OSW只能看到CPU的idle情况图形显示。那么要求能否查询CPU的使用情况,而不是idel情况信息,同时需要图形显示出来。
【监控优化过程及思路】
对于上面描述的问题:
1, 主机信息数据采取。 ----直接使用OSW采集的数据(osw配置可参考Oracle官网)
2, 针对数据来生成图形显示。 ----使用Python来进行图形显示处理
【测试结果及脚本】
通过测试库测试脚本。结果如下:
1, 数据信息:采用现有的OSW数据信息,截图如下:
2, 主机CPU使用率用Python最终结果:截图如下:
【通用日志处理】
主要实现功能的脚本如下:
1, 使用shell进行数据处理:
cat >linux_cpu.sh
######################################################################
# linux_cpu.sh
# This script is cpu check
# Author CZT
######################################################################
echo "eg :/home/oracle/archive/oswtop"
read -p "Enter the oswtop accuracy path:" v_path
while [ ! $v_path ]
do
read -p "Enter the oswtop accuracy path:" v_path
done
if [ ! -d $v_path ] && [ ! -x $v_path ];
then
echo -e "Note: The oswtop path does not exist."
else
echo -e "Get data,please wait......\c"
cat $v_path/* |grep -i 'zzz'|awk '{for(i=3+1;i<=NF;i++)printf $i " ";printf",\n"}' > ./DATE_TIME.txt》》》抽取时间数据
echo "......"
cat $v_path/* |grep -i 'idle'|awk '{print int(100-$3)}'|sed 's/$/,/' > ./CPU.txt》》》抽取CPU数据
echo "Get data successfully,Now run the python......"
fi
python linux_cpu.py》》》调用Linux_cpu.py实现表格生成
echo "Run the python successfully,done"
2, Python实现连接多个数据库查询数据库状态信息:
cat > linux_cpu.py
######################################################################
# linux_cpu.py
# This script is system cpu check
# Author CZT
######################################################################
# -*- coding:UTF-8 -*-
import xlsxwriter
workbook = xlsxwriter.Workbook('linux_cpu.xlsx')》》》定义Excel文件信息
worksheet = workbook.add_worksheet()
bold = workbook.add_format({'bold': 1})
# Add the worksheet data that the charts will refer to.
patch_file_name1="DATE_TIME.txt"》》》定义时间信息数组X
inFile1= open(patch_file_name1,'r')
x = []
for line1 in open(patch_file_name1):
trainingSet = line1.split(',')
x.append(trainingSet[0])
patch_file_name2="CPU.txt"》》》定义CPU信息数组Y
inFile2= open(patch_file_name2,'r')
y = []
for line2 in open(patch_file_name2):
trainingSet = line2.split(',')
y.append(float(trainingSet[0]))
data = [
x,
y,
]》》》定义时间和CPU二维数组
headings = ['TIME', 'CPU(%)']》》》设置Excel中sheet中第一行信息
worksheet.write_row('A1', headings, bold)
worksheet.write_column('A2', data[0])》》》设置Excel中A2列插入二维数组data X
worksheet.write_column('B2', data[1])》》》设置Excel中A2列插入二维数组data Y
# Create a new chart object. In this case an embedded chart.
chart1 = workbook.add_chart({'type': 'line'})
# Configure the first series.
row=len(x)》》》设置二维数组data X的长度
chart1.add_series({
'name': ['Sheet1', 0, 1],
'categories': ['Sheet1', 1, 0, row, 0],
'values': ['Sheet1', 1, 1, row, 1],
})》》》指定Excel中sheet生成表格的范围
# Add a chart title and some axis labels.》》》定义表格的注释信息
chart1.set_title ({'name': 'Results of cpu analysis'})
chart1.set_x_axis({'name': 'Time list'})
chart1.set_y_axis({'name': 'Usage pct (%)'})
# Set an Excel chart style. Colors with white outline and shadow.
chart1.set_style(10)
# Insert the chart into the worksheet (with an offset).
worksheet.insert_chart('D2', chart1, {'x_offset': 25, 'y_offset': 10})
workbook.close()
3, 用法:按照TXT文件创建两件文件linux_cpu.py/linux_cpu.sh后,直接运行sh linux_cpu.sh按照提示输入准确的oswtop目录即可。然后查看linux_cpu.xlsx Excel文件信息。
【问题思考】
1, 主机有一定的限制,例如HP,AIX。得有TOP命令生成的OSW数据才能使用该脚本;
2, Python使用的限制,对于生产EXCEL表格,需要手动安装xlsxwriter插件才能使用。
【总结】:
1, 对数据库出现问题的时候主机性能情况肯定随之波动,使用该脚本更加细化的找到发生的时间点,对于问题定位和解决很有帮助和说服力;
本次脚本涉及shell和Python脚本,选择正确的语言和方式结合达到效果还是比较可观。
针对主机CPU idle性能情况需求脚本编写的更多相关文章
- 浅谈cpu.idle和cpu.load
1.概述 大家经常对一个系统的容量进行评估时,会参考cpu.idle和cpu.load指标,但是这两个指标到底在什么区间,表示系统是正常或者异常呢,业内有不同的说法.因此本文搜集一些资料,并对一个系统 ...
- Linux系统CPU的性能监控及调优
前言: 性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等.尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的 ...
- Linux iostat-监视系统输入输出设备和CPU的使用情况
推荐:更多linux 性能监测与优化 关注:linux命令大全 iostat命令被用于监视系统输入输出设备和CPU的使用情况.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况.同vmsta ...
- Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的性能稳定的操作系统,可免费使用并自由传播。
Linux是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的性能稳定的操作系统,可免费使用并自由传播. Linux是众多操作系统之一 , 目前流行的服务器和 PC 端操作系统有 L ...
- CPU 硬盘性能
CPU 硬盘性能到底相差多少 本文以一个现代的.实际的个人电脑为对象,分析其中CPU(Intel Core 2 Duo 3.0GHz)以及各类子系统的运行速度——延迟和数据吞吐量.通过粗略的估算PC各 ...
- [linux]iostat命令详解-监视系统输入输出设备和CPU的使用情况
部分转载https://blog.csdn.net/sunansheng/article/details/51942281 iostat命令被用于监视系统输入输出设备和CPU的使用情况.它的特点是汇报 ...
- VPS/云主机CPU占用100%故障排查
VPS/云主机CPU占用100%故障排查 方法/步骤 通常情况下云主机/VPS的CPU一般不会占用100%,内存资源也不会占完.若您的服务器经常CPU资源100%,可以打开任务管理器,查看是哪个进程引 ...
- 主机cpu突然飙高,如何快速排查问题
[问题发现] 使用zabbix软件监控服务器时发现cpu突然异常,在业务主机上使用top命令查看系统的整体运行情况,使用top命令后发现mysqld占用CPU特别高,初步判断可能是mysqld出现问题 ...
- 一键获取linux内存、cpu、磁盘IO等信息脚本编写,及其原理详解
更多linux知识,请关注公众号:一口Linux 一.脚本 今天主要分享一个shell脚本,用来获取linux系统CPU.内存.磁盘IO等信息. #!/bin/bash # 获取要监控的本地服务器IP ...
随机推荐
- Django 【认证系统】auth
本篇内容 介绍Django框架提供的auth 认证系统 方法: 方法名 备注 create_user 创建用户 authenticate 登录验证 login 记录登录状态 logout 退出用户登录 ...
- CSS伪元素:before/CSS伪元素:before/:after content 显示Font Awesome字体图标:after content 显示Font Awesome字体图标
HTML <a href="javascript:volid(0);"><i class="icon-table"></i> ...
- Luogu P5296 [北京省选集训2019]生成树计数
Luogu P5296 [北京省选集训2019]生成树计数 题目链接 题目大意:给定每条边的边权.一颗生成树的权值为边权和的\(k\)次方.求出所有生成树的权值和. 我们列出答案的式子: 设\(E\) ...
- laravel学习笔记一
指定端口 数据迁移 php artisan migrate:install 任何路由 match get,post只选择其一 没有表名对应默认的posts表,如果表为post就不行 时区不对时 分页 ...
- 2018-2019-2 20175329许钰玮 实验二《Java面向对象程序设计》实验报告
实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 (一)单元测试 对于单元测试中单元的含 ...
- STM32407+LAN8720A+LWIP 实现TCP Client
硬件 一.配置CubeMax工程 二.配置系统时钟 因为LAN8720使用的是外部25MHz的晶振,所以不需要单片机输出时钟 三.配置ETH和LWIP参数 四.更改代码 LAN8720A在初始化的时候 ...
- jQuery 图片查看插件 Magnify 开发简介(仿 Windows 照片查看器)
前言 因为一些特殊的业务需求,经过一个多月的蛰伏及思考,我开发了这款 jQuery 图片查看器插件 Magnify,它实现了 Windows 照片查看器的所有功能,比如模态窗的拖拽.调整大小.最大化, ...
- go语言-值类型与引用类型
https://www.cnblogs.com/java-zhao/p/9942311.html https://blog.csdn.net/TDCQZD/article/details/826836 ...
- PS调出唯美紫蓝色天空背景女生照片
教你学会用PS给照片叠加素材,达到想要的效果. 首先,作为摄影在拍摄前,我们要明白自己拍摄主题与目的,希望后期达到的效果,尤其是当我们需要后期叠加素材时,脑海中自然而然会有大致画面,就以“夏日”这组为 ...
- 解决虚拟机下安装CentOS无法上网
Centos7默认是不启用有线网卡的,需要手动开启. 操作步骤如下: 首先,打开终端.cd /etc/sysconfig/network-scripts/ls 查看一下ifcfg-eno后面对应的数字 ...