CPU满载

模拟CPU满载
首先查看cpu核心数

1.如果是在服务器上,可以使用如下命令
查看cpu信息
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
查看cpu个数
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
查看cpu核心数
cat /proc/cpuinfo | grep "cpu cores" | uniq
查看逻辑cpu个数
cat /proc/cpuinfo | grep "processor" | wc -l
2.如果是在mac电脑上,可使用如下命令
sysctl machdep.cpu


WeChat88d014424cf51183c66cea7595e27fab.png
模拟cpu满载

由于我是在在本地模拟

public static ExecutorService commonService = null;
    public static Integer  THREAD_MAX = 8 ;

    static {
        commonService = Executors.newFixedThreadPool(THREAD_MAX);
    }

    @ApiOperation("注册接口")
    @GetMapping(path = "/fullCpu", produces = MediaType.APPLICATION_JSON_VALUE)
    public Result fullCPU() {
        commonService.execute(() -> {
            log.info("testExcutors 线程开始执行----->" + Thread.currentThread().getName());
            for (;;) {
                int i = 0;
                I++;
                if (i == Integer.MAX_VALUE) {
                    log.info("testExcutors 线程开始结束----->" + Thread.currentThread().getName() + ", i = " + i);
                    break;
                }
            }
            log.info("testExcutors 线程开始结束----->" + Thread.currentThread().getName());
        });
        return Result.success();
    }

因此理论上调用该接口8次,cpu会满载,来看下前后对比图


WeChat680cb15589edfc150ab0b9fcf07e1599.png
WeChat93666b0303961e69906d802722f2aefe.png
通过jmeter观察前后变化
hippo500-1-100(cpu使用率14%左右时).png
hippo500-1-100(cpu使用率92%左右时).png
cpu使用高时如何定位

1.top 指令查询当前进程cpu使用情况
2.从上面指令结果中获取cpu占用较高进程的pid, 使用jstack 命令查看想成情况 如进程号是64913 ,则jstack 64913

你可能感兴趣的:(CPU满载)