vpp的cpu占用100%解决小技巧

通过在VPP的主线程中引入usleep实现周期性休眠,有效降低笔记本虚拟机上VPP运行时的CPU占用率,从100%降至1%,同时确保CLI操作流畅,减少发热及风扇噪音。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔记本虚拟机跑vpp啊,i7-8750H的cpu一个核心100%,发热感人,风扇很吵。

解决这个cpu 100%问题,同时不影响功能调试的方法被我想到一个。

主线程usleep, 用了这招之后跑性能测试肯定是跑不了的,当然笔记本本来也不是用来跑性能的。

main.c: 1768
function: vlib_main_or_worker_loop

static u32 ck_rouds = 0;      //define staic varible to count 
while (1)
    {
        ck_rouds++;                 
        if (ck_rouds % 100 == 0) {
            usleep(1);
            ck_rouds = 0;
        }
      vlib_node_runtime_t *n;

      if (PREDICT_FALSE (_vec_len (vm->pending_rpc_requests) > 0))
	{
	  if (!is_main)
	    vl_api_send_pending_rpc_requests (vm);
	}

轮询100次,强行睡1微妙,CPU占用低至1,且CLI操作还是很流畅。

告别高占用,发热风扇吵的问题啦。

Tasks: 144 total,   2 running, 142 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  1.1 us,  0.0 sy,  0.0 ni, 98.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7990068 total,  4073296 free,  2447008 used,  1469764 buff/cache
KiB Swap:  4063228 total,  4063228 free,        0 used.  5260104 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                  
 10223 root      20   0  210.7g 120904  22924 S  12.0  1.5   0:35.31 vpp_main                                                 
   244 root      20   0       0      0      0 S   0.3  0.0   0:02.19 kworker/3:1 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值