您的位置:首页 > 其它

遇到影响服务器性能的cpuspeed 服务

2017-03-28 17:23 281 查看
最近碰到一个很蛋痛的问题,,我在公司的代码上实现了一个功能,然后基于这个测试,结果比对数据发现每天少三千多万条,,

然后我各种优化,各种零碎部功能阉割,,还是丢数据!

之后,监控运行网卡----watch -n 1 "ifconfig eth2",,,发现网卡丢数据!

之后把修改之前的程序拿上来运行,发现网卡还丢!

之后查看CPU的使用情况,top





发现有好多CPU被 cpuspeed 限速了,,,怀疑可能是我程序运行的时候选了一个不常用的CPU,而这个CPU可能就是1.2GHz,,影响了程序处理频率;

查看CPU使用情况的方法:

1,top; 可以用 ps aux |grep XXX 或者 pgrep XXX ,,找出你所要查找的进程号 之后 top -p 进程号 单独查看该进程的CPU 内存等使用情况;

你可以用 ps -eLf |grep XXX 来查看程序运行所产生的线程情况; 也可以用 ps axms | grep XXX;

2,[b][b]mpstat;默认输出所有CPU使用情况的平均值,用 mpstat -P ALL 命令查看所有的CPU使用情况;[/b][/b]

[b][b]3,[b]ps; 使用ps命令,可以很清楚的看出到底是哪一条进程在吃CPU.排在前面的占用的CPU越多, ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20 显示占用CPU最多的20个进程;[/b][/b][/b]

[b][b][b]4,查看当前进程下参数CPU的使用情况, cat /proc/cpuinfo ,罗列了所有CPU的使用情况,你也可以过滤里边的单独参数,比如查看所有CPU的频率,cat /proc/cpuinfo | grep -i MHz; [/b][/b][/b]

[b][b][b]5,[b]vmstat 一般脚本监控文件时,用他与awk 命令配合使用(未验证过)。[/b][/b][/b][/b]

发现上边这个情况后,马上联系甲方处理。

处理方法: from:http://blog.sina.com.cn/s/blog_5f2ca1ed0101cz6f.html

1.物理服务器BIOS做设置 关闭节能开启最大CPU资源使用
做完该操作后,查看cpu主频仍然是1.2GHz
2.chkconfig --list |grep cpuspeed 发现该服务1,2,3,4,5级别均开机启动
关闭该服务,并关闭开机启动,解决该问题。

另外,CPU性能可能也还会与 irqbalance服务 有关。

可以点击文章: cpuspeed和irqbalance服务器的两大性能杀手 备注:之前那个链接不知道为啥点不过去,换了一个链接.

补充:

查看某一个进程内部当前运行的有多少线程,还有以下几个方法值得一用。

1.根据进程号进行查询:

# pstree -p 进程号

# top -Hp 进程号

2.根据进程名字进行查询:

# pstree -p `ps -e | grep server | awk '{print $1}'`

# pstree -p `ps -e | grep server | awk '{print $1}'` | wc -l

这里利用了管道和命令替换,

关于命令替换,我也是今天才了解,就是说用``括起来的命令会优先执行,然后以其输出作为其他命令的参数,

上述就是用 ps -e | grep server | awk '{print $1}' 的输出(进程号),作为 pstree -p 的参数

管道和命令替换的区别是:

管道:管道符号"|"左边命令的输出作为右边命令的输入

命令替换:将命令替换符"``"中命令的输出作为其他命令相应位置的参数

文章内容来源: 功夫Panda 的 Linux下查看某个进程的线程数量.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐