查看当前dpdk绑定核中哪些进程在运行(ps配合grep命令)

由于dpdk的程序利用cpu affinity机制,进程绑定在cpu上,抢占了cpu,从top命令观察cpu的使用率始终为100%,在调试dpdk多进程中,需要知道当前dpdk进程所占用的核上是否有其他的进程在运行,影响了dpdk进程的效率,可以利用ps命令结合grep命令查看。

假设dpdk的进程绑定在cpu0-14的核上:

ps -eo pid,psr,command,%cpu | egrep "^.{5}[[:space:]]+\<([0-9]|1[0-4])\>" |  egrep -v "^.*\<(0.0)\>$"

即可查看。

------------------------------------------------------------------------------------------------------------------------------------------------------------

下面是关于命令简单描述,

关于ps的命令,可以通过查看man ps得知,简单描述一下,ps -eo是指用户自定义输入格式下输出:

列举上面用到几个标准格式说明符,可以man ps后搜索关键词STANDARD FORMAT SPECIFIERS查看

pid         PID       a number representing the process ID (alias tgid).
psr         PSR       processor that process is currently assigned to.
command     COMMAND   See args.  (alias args, command).
pcpu        %CPU      see %cpu.  (alias %cpu).

pid就是进程的id,别名是tgid,所以ps -eo pid=ps -eo tgid是等价的,psr就是指当前进程所在的核编号,command就是进程的命令包括参数,pcpu就是进程所占cpu的百分比。

egrep和grep基本相同,但egrep可以使用基本的正则表达外, 还可以用扩展表达式,还有一点需要注意,egrep一些地方取消了转义字符的使用,如:

+ 匹配一个或者多个先前的字符, 至少一个先前字符.
? 匹配0个或者多个先前字符.
a|b|c 匹配a或b或c
() 字符组, 如: love(able|ers) 匹配loveable或lovers.
(..)(..)\1\2 模板匹配. \1代表前面第一个模板, \2代第二个括弧里面的模板.
x{m,n} =x\{m,n\} x的字符数量在m到n个之间.
我觉得egrep用起来比较顺手,详细的参考博文:

https://blog.csdn.net/NewThinker_wei/article/details/8219293

egrep "^.{5}[[:space:]]+\<([0-9]|1[0-4])\>"

由于pid是占五个字符,刚开始匹配任意五个字符,紧接着至少一个空格,匹配完整单词,0-14。

egrep -v "^.*\<(0.0)\>$"

表示过滤cpu占比为0.0的进程

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喝醉的鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值