CPU

    查询服务器CPU的使用情况主要通过以下方式:

    在所有存储节点,逐一执行top命令,查看CPU占用情况。执行该命令后,按“1”键,可查看每个CPU核的使用率。

    分析时,请主要关注进程占用的CPU利用率。

    其中,统计信息中“us”表示用户空间占用CPU百分比,“sy”表示内核空间占用CPU百分比,“id”表示空闲CPU百分比。如果“id”低于10%,即表明CPU负载较高,可尝试通过降低本节点任务量等手段降低CPU负载。

    性能参数分析

    1. 使用“top -H”命令查看CPU,显示内容如下所示。

        top - 14:22:49 up 5 days, 21:51, 2 users, load average: 0.08, 0.08, 0.06 Tasks: 312 total, 1 running, 311 sleeping, 0 stopped, 0 zombie Cpu(s): 1.3%us, 0.7%sy, 0.0%ni, 95.0%id, 2.4%wa, 0.5%hi, 0.2%si, 0.0%st Mem: 8038844k total, 5317668k used, 2721176k free, 180268k buffers Swap: 4192924k total, 0k used, 4192924k free, 2886860k cached

        PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

        3105 root 20 0 50492 11m 2708 S 3 0.1 22:22.56 acc-snf

        4015 gdm 20 0 232m 23m 11m S 0 0.3 11:34.70 gdm-simple-gree
        51001 omm 20 0 12140 1484 948 R 0 0.0 0:00.94 top

        54885 omm 20 0 615m 396m 116m S 0 5.1 0:09.44 gaussdb

        • 如果是系统CPU占用过高,需要查找异常系统进程进行处理。
        • 如果是“USER”为omm的openGauss进程CPU占用过高,请根据目前运行的业务查询内容,对业务SQL进行优化。请根据以下步骤,并结合当前正在运行的业务特征进行分析,是否该程序处于死循环逻辑。

          1. 使用“gstack ”查看进程内各线程的函数调用栈。查找上一步骤中占用CPU较高的线程ID对应的线程号。操作系统中若默认无gstack命令,使用时可自行安装。

            查询结果如下所示,其中线程ID54775对应线程号是10。