linux top显示CPU占用高,Steal高

开发这么久,第一次这种问题,记录一下。
在某天开发中,开发机的cpu忽然飙升,一直降不下来,刚开始没注意,一直删除cpu占用高的进程,一直无效,仔细看。top显示Steal高。blog.csdnimg.cn/b5e3e319214548e19d47151304d9c346.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmFuRlM=,size_20,color_FFFFFF,t_70,g_se,x_16)
经过查询是因为宿主机出了问题,详细说明看这里。
然后联系了运维,更换了宿主机,解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是获取当前CPU占用率的代码示例: ```c #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #define NUM_CPU_STATES 10 typedef struct cpu_stats { unsigned long long int user; unsigned long long int nice; unsigned long long int system; unsigned long long int idle; unsigned long long int iowait; unsigned long long int irq; unsigned long long int softirq; unsigned long long int steal; unsigned long long int guest; unsigned long long int guest_nice; } cpu_stats; void read_cpu_stats(cpu_stats *stats) { char buffer[8192]; FILE *fp = fopen("/proc/stat", "r"); fgets(buffer, sizeof(buffer), fp); sscanf(buffer, "cpu %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu", &stats->user, &stats->nice, &stats->system, &stats->idle, &stats->iowait, &stats->irq, &stats->softirq, &stats->steal, &stats->guest, &stats->guest_nice); fclose(fp); } unsigned long long int compute_cpu_usage(cpu_stats *prev_stats, cpu_stats *curr_stats) { unsigned long long int prev_idle = prev_stats->idle + prev_stats->iowait; unsigned long long int curr_idle = curr_stats->idle + curr_stats->iowait; unsigned long long int prev_non_idle = prev_stats->user + prev_stats->nice + prev_stats->system + prev_stats->irq + prev_stats->softirq + prev_stats->steal; unsigned long long int curr_non_idle = curr_stats->user + curr_stats->nice + curr_stats->system + curr_stats->irq + curr_stats->softirq + curr_stats->steal; unsigned long long int prev_total = prev_idle + prev_non_idle; unsigned long long int curr_total = curr_idle + curr_non_idle; unsigned long long int total_diff = curr_total - prev_total; unsigned long long int idle_diff = curr_idle - prev_idle; return (total_diff - idle_diff) * 100 / total_diff; } int main() { cpu_stats prev_stats; cpu_stats curr_stats; memset(&prev_stats, 0, sizeof(cpu_stats)); memset(&curr_stats, 0, sizeof(cpu_stats)); while (1) { read_cpu_stats(&prev_stats); sleep(1); read_cpu_stats(&curr_stats); unsigned long long int cpu_usage = compute_cpu_usage(&prev_stats, &curr_stats); printf("CPU usage: %llu%%\n", cpu_usage); } return 0; } ``` 该程序中,`read_cpu_stats`函数从`/proc/stat`文件中读取CPU状态信息,`compute_cpu_usage`函数计算CPU占用率,`main`函数循环读取CPU状态信息并计算CPU占用率,并输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值