首页 > 编程知识 正文

上下文及其切换机制,mysql切换数据库命令

时间:2023-05-06 17:41:00 阅读:170798 作者:4901

上下文切换

一.运行vmstat并观察上下文切换情况:

vmstat 1

r列、就绪队列的长度远远超过了CPU的数量,因此会有大量的CPU竞争

us和sy,这两列的CPU使用率,其中系统CPU使用率高,说明CPU主要由核心占用

(in列)中断次数多,中断处理也是潜在的问题

综合这些指标,系统的准备队列太长了。 这意味着运行和等待CPU的进程过多,产生了大量的上下文切换,上下文切换导致系统的CPU利用率上升。

二、继续分析,用pidstat来看,CPU和进程上下文切换的情况:

-wt参数表示输出线程的上下文切换指标

pidstat -wt 1

在pidstat的输出中,可以看到哪个线程上下文切换得太多。

三、其次,继续分析中断次数上升的根源(中断只发生在内核状态) )。

通过从名为/proc/interrupts的只读文件中读取,可以实现只读中断使用

(动态显示) )。

总结:

上下文切换指针:

)1) .上下文切换的次数依赖于系统自身的CPU性能,只要系统的上下文切换次数稳定,几百到一万以内是正常的

)2) .如果上下文切换的次数超过1万次,或者切换的次数增加了很多,那么很可能已经发生了性能问题

线程上下文在同一进程中切换。 由于共享虚拟内存,所以在切换过程中,虚拟内存资源不会更改,只是在线程的专用数据、寄存器等非共享数据之间切换。 (多线程代替多进程) ) )。

更多的主动上下文切换表明进程正在等待资源,并可能出现其他问题,如IO

更多的非自愿上下文切换表明进程被强制调度,正在争夺CPU,这表明CPU遇到了瓶颈

越来越多的中断上下文切换表示CPU被中断处理程序占用,您需要参考/proc/interrupts文件来分析特定的中断类型

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。