Linux教程

01.linux性能优化-平均负载

本文主要是介绍01.linux性能优化-平均负载,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

uptime:

21:09:41 (time) ,up 35 min, (系统运行时间), 2 users, (登录用户数),load average: 0.00, 0.01, 0.04 (平均负载 1分钟 五分钟 十五分钟)

一. 平均负载

平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数平均负载/CPU核数。
可运行状态:正在使用CPU(running)或正在等待CPU(runnable)的进程
不可中断状态:正在请求硬件响应(可理解为正常服务因得不到硬件响应的持续请求进程)

二.CPU上下文切换
CPU上下文:CPU寄存器:速度极快的内存。程序计数器:存CPU正在执行的指令位置或即将执行的下一条指令位置
CPU上下文切换就是把上一个任务的CPU上下文保存,然后执行新任务的CPU上下文
CPU上下文切换分为进程上下文切换、线程上下文切换、中断上下文切换

(1).进程上下文切换:进程由内核管理调度 当发生进程上下文切换时 因比特权模式切换(系统调用)多出要保存或恢复进程的虚拟内存、栈、全局变量、内核堆栈、寄存器等内核空间状态 因此会耗费大量的使用CPU 进程被调到CPU运行情况(进程调度)类别:

1、CPU划分为一段段时间片轮流分配给各个进程 当某个进程时间片耗尽就会被系统挂起切换到其他正在等待CPU的进程运行
2、系统资源不足时,进程被挂起 ,系统调度其他进程
3、进程主动将自己挂起
4、当有优先级更高的进程运行

(2).线程上下文切换:线程是调度的基本单位,进程则是资源拥有的基本单位
1、进程只有一个线程时,他们可以理解为同一类
2、当一个进程对应多个线程时,这些线程会共享相同的虚拟内存和全局变量等资源这些资源在上下文切换时不需要改变故消耗资源减少
同为上下文切换时 同进程内的线程切换比多进程间的切换更省资源

(3).中断上下文切换:打断进程的正常调度和执行 比进程切换拥有更高的优先级
(进程运行空间分为内核空间和用户空间。 内核空间可直接访问所有资源,用户空间只能访问受限资源不能访问硬件设备 必须用过调入陷入到内核中才能访问 )
系统调用:用户空间和内核空间的切换为特权模式切换 (不会涉及到虚拟内存等进程用户态的资源也不会切换进程)
过多的上下文切换会导致资源大部分使用在保存寄存器、内存栈以及虚拟内存等数据上从而导致真正的进程运行时间被缩短导致系统整体性能大幅下降

这篇关于01.linux性能优化-平均负载的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!