Linux服务器中谁在切换进程
发表于:2025-02-16 作者:千家信息网编辑
千家信息网最后更新 2025年02月16日,这篇"Linux服务器中谁在切换进程"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"L
千家信息网最后更新 2025年02月16日Linux服务器中谁在切换进程
这篇"Linux服务器中谁在切换进程"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Linux服务器中谁在切换进程"文章吧。
我们在做Linux服务器的时候经常会需要知道谁在做进程切换,什么原因需要做进程切换。 因为进程切换的代价很高,我给出一个LMbench测试出来的数字:
Context switching – times in microseconds – smaller is better————————————————————————-Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64Kctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw——— ————- —— —— —— —— —— ——- ——-my174.cm4 Linux 2.6.18- 6.1100 7.0200 6.1100 8.7400 7.7200 8.96000 9.62000
在我的很高端的服务器上,进程切换的开销在8us左右, 这个相对于高性能的服务器是不可接受的, 所以我们要在一个时间片内尽可能的多做事情,而不是把时间浪费在无谓的切换上。
好奇害死猫,我们来调查下谁在切换我们的进程:
[root@my174 admin]# dstat 1—-total-cpu-usage—- -dsk/total- -net/total- —paging– —system–usr sys idl wai hiq siq| read writ| recv send| in out | int csw0 0 100 0 0 0| 0 0 | 796B 1488B| 0 0 |1004 1280 0 100 0 0 0| 0 0 | 280B 728B| 0 0 |1005 1140 0 100 0 0 0| 0 0 | 280B 728B| 0 0 |1005 1280 0 100 0 0 0| 0 0 | 280B 728B| 0 0 |1005 1140 0 100 0 0 0| 0 320k| 280B 728B| 0 0 |1008 143…
我们可以看到 csw的数目是 120/S, 但是dstat或者vmstat类似的工具并没有告诉我们谁在干坏事。好吧!我们自己动手行吧。
祭出我们可爱的systemtap!
[root@my174 admin]# cat >cswmon.stp#! /usr/bin/env stap## global csw_countglobal idle_count probe scheduler.cpu_off {csw_count[task_prev, task_next]++idle_count+=idle} function fmt_task(task_prev, task_next){return sprintf("%s(%d)->%s(%d)",task_execname(task_prev),task_pid(task_prev),task_execname(task_next),task_pid(task_next))} function print_cswtop () {printf ("%45s s\n", "Context switch", "COUNT")foreach ([task_prev, task_next] in csw_count- limit 20) {printf("%45s d\n", fmt_task(task_prev, task_next), csw_count[task_prev, task_next])}printf("%45s d\n", "idle", idle_count) delete csw_countdelete idle_count} probe timer.s($1) {print_cswtop ()printf("————————————————————–\n")}CTRL+D
这个脚本会每隔设定的时间打印出TOP 20切换最多的进程和他的pid, 我们来看下结果把:
[root@my174 admin]# stap cswmon.stp 5Context switch COUNTswapper(0)->systemtap/11(908) 500systemtap/11(908)->swapper(0) 498swapper(0)->fct1-worker(2492) 50fct1-worker(2492)->swapper(0) 50swapper(0)->fct0-worker(2191) 50fct0-worker(2191)->swapper(0) 50swapper(0)->bond0(3432) 50bond0(3432)->swapper(0) 50stapio(879)->swapper(0) 26swapper(0)->stapio(879) 25stapio(879)->swapper(0) 19swapper(0)->stapio(879) 17swapper(0)->watchdog/9(31) 5watchdog/9(31)->swapper(0) 5swapper(0)->mysqld(18346) 5mysqld(18346)->swapper(0) 5swapper(0)->watchdog/13(43) 5watchdog/13(43)->swapper(0) 5swapper(0)->watchdog/14(46) 5watchdog/14(46)->swapper(0) 5idle 859————————————————————–…
我们可以看到进程从哪里切换到哪里,并且发生了多少次, ***一行,我打印出来idle的次数,也就是说这时候系统没啥事情做,就切换到idle(0)这个进程去休息去了。
通过上面的调查,我们会很清楚的了解到我们系统的开销发生在那里,方便我们定位问题。
以上就是关于"Linux服务器中谁在切换进程"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
切换
进程
服务器
服务
内容
时间
开销
文章
知识
篇文章
系统
调查
可爱
清楚
好奇
一行
也就是
也就是说
事情
代价
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发企业kpi考核
荒宅数据库有声小说免费
软件开发企业精细化管理
服务器别名
网络安全相关学习内容
web开发和软件开发
服务器模组怎么使用
湖北嵌入式软件开发哪家正规
吴中区正规服务器代理厂家
甘肃居家智慧养老软件开发
服务器主板不读硬盘
yc服务器
万方数据库主题词检索
数据库sum计算什么类型
数据库数据id怎么有序
软件开发在哈尔滨好找工作吗
笔记本电脑用什么软件开发
广州金山云网络技术有限公司
湖北软件开发定制近期价格
做cdn节点用vps还是服务器
网络安全与高校学生
杭电网络安全在读研究生
泰安平台软件开发解决方案
金华环球网络技术有限公司
淘宝第三方软件开发接口
吉林网络技术服务质量保证
对数据库的四大操作
域名根服务器镜像节点
查询数据库的速度和硬盘的关系
传奇4玩什么服务器好