负载均衡与上行下文切换

平均负载:

    单位时间内处于可运行不可中断状态(D状态)的进程数,即活跃进程数。

    查看:uptime

    平均负载与CPU使用率

平均负载与CPU使用率在集中情况下的比较关系

几个常用命令:

    watch——监视命令输出的变化    watch -d uptime

    stress——系统压力测试工具

        --cpu:模拟cpu密集型

        -c:模拟多进程情况

        -i:模拟I/O密集型

    mpstat——多核CPU性能分析工具

    pidstat——多进程性能分析工具

        -t:查看线程指标(默认只显示进程指标)

    

上下文切换的几种情况:

    1.进程上下文切换:

        虚拟内存、栈、全局变量等用户空间资源 和 内核堆栈、寄存器等内核空间资源都要切换。

    2.线程上下文切换:

        第一种情况:进程间的线程切换-->进程上下文切换

        第二种情况:同进程内的线程切换-->只切换线程私有数据寄存器

    3.中断上下文切换:

        从正在执行的用户空间切换到内核空间执行中断处理程序。


上下文切换的性能分析:

    vmstat——系统性能分析工具

        cs列是上下文切换次数(context switch)

        us列是用户态cpu使用率

        sy列是系统cpu使用率

        cswch:自愿上下文切换数(等待外部资源或主动sleep)

        nvcswch:非自愿上下文切换数(被抢占、中断、时间片到期等)

    cat /proc/interrupts

        该文件可查看中断变化数量

        RES是 重调度中断(例如:从cpu0队列中拿取一个任务放到目前空闲的cpu1的队列中)

    分析:   

        自愿上下文切换变多:进程都在等待外部资源(比如I/O密集)

        非自愿上下文切换变多:进程都在争夺cpu(就绪态的进程变多了,每个进程分得的时间片就变少,切换更频繁)

        中断次数变多:要根据/proc/interrupts文件来分析

你可能感兴趣的:(负载均衡与上行下文切换)