Ctrl+Alt+Del然后打开任务管理器在任务管理器的最下方就有CPU使用率.这是最原始的方法
如何用sql 查看当前系统cpu使用率步骤
1,打开SQLServer自己带的事件查看器。
2,新建一个监控,把监控的数据存到一个表,。
3,发现不正常后,关掉监控,查询下CPU列>90即可。
延展:
用sql server自带的事件查看器是sql server profile(在sql2005)。在sql server2000中叫事件分析器吧(在企业管理器中)
linux怎么查看cpu使用率-c详解
——任务队列信息,在第一行显示
tasks: 69 total 进程总数
1 running 正在运行的进程数
68 sleeping 睡眠的进程数
0 sped 停止的进程数
0 zombie 僵死进程数
——CPU 信息
cpu(s): 0.2% us 用户空间占用CPU百分比
0.7% sy 内核空间(系统)占用CPU百分比
0.1% ni 用户进程空间内改变过优先级的进程占用CPU百分比
97.8% id 空闲CPU百分比
1.1% wa 等待IO的CPU时间百分比
0.1% hi
0.1% si
——swap信息
内存中长时间不用的数据置换进swap
.
使用权限:所有使用者
使用方式: [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
说明:即时显示process的动态
d :改变显示的更新速度,或是在交谈式指令列( interactive mand)按s
q :没有任何延迟的显示速度,如果使用者是有superuser的权限,则将会以最高的优先序执行
c :切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S :累积模式,会将己完成或消失的子行程( dead child process )的CPU time累积起来
s :安全模式,将交谈式指令取消,避免潜在的危机
i :不显示任何闲置(idle)或无用(zombie)的行程
n :更新的次数,完成后将会退出
b :批次档模式,搭配"n"参数一起使用,可以用来将的结果输出到档案内
linux怎么查看cpu使用率
鼠标点击任务栏右键---启动任务管理器就可以了、
望采纳。。。。
linux也有资源管理器的,百度一下你知道,不同的发行版都不同
怎么查看linux cpu使用率:jingyan.baidu./article/e75aca8559bd02142edac688.教程在这
希望能帮到你,望采纳!
miui 怎么查看CPU使用率360里面有
作者 王文安,腾讯CSIG数据库专项的数据库工程师,主要负责腾讯云数据库 MySQL 的相关的工作,热爱技术,欢迎留言进行交流。文章首发于腾讯云+社区的腾讯云数据库专家服务专栏。在日常工作中,发现 MySQL 的状态不太对劲的时候,一般都会看看监控指标,很多时候会看到熟悉的一幕:CPU 使用率又爆了。本文将给大家介绍 MySQL 和 CPU 之间的关系,对此有一定的了解之后可以更准确的判断出问题的原因,也能够提前发现一些引发 CPU 问题的隐患。
怎么看懂CPU使用率
以 Linux 的 top 命令为例,效果如下:
Top 命令
在 %CPU 这一列就展示了 CPU 的使用情况,百分比指代的是总体上占用的时间百分比:
%us:表示用户进程的 CPU 使用时间(没有通过 nice 调度)
%sy:表示系统进程的 CPU 使用时间,主要是内核使用。
%ni:表示用户进程中,通过 CPU 调度(nice)过的使用时间。
%id:空闲的 CPU 时间
%wa:CPU 运行时在等待 IO 的时间
%hi:CPU 处理硬中断花费的时间
%si:CPU 处理软中断花费的时间
%st:被虚拟机偷走的 CPU 时间
通常情况下,我们讨论的 CPU 使用率过高,指的是 %us 这个指标,监控里面的 CPU 使用率通常也是这个值(也有用其他的方法计算出来的,不过简单起见,不考虑其他的情况 )。其他几个指标过高也代表出 MySQL 的状态异常,简单起见,这里主要还是指 %us 过高的场景。
MySQL和线程
MySQL 是单进程多线程的结构,意味着独占的 MySQL 服务器里面,只能用 top 命令看到一行数据。
TOP 命令效果
这里能看到的是 MySQL 的进程 ID,如果要看到线程的情况,需要用top -H
TOP 命令效果
在这里能看到的是 MySQL 各个线程的 ID,可以看到 MySQL 在启动之后,会创建非常多的内部线程来工作。
这些内部线程包括 MySQL 自己用来刷脏,读写数据等 *** 作的系统线程,也包括处理用户 SQL 的线程,姑且叫做用户线程吧。用户线程有一个特殊的地方:程序端发送到 MySQL 端的 SQL,只会由一个用户线程来执行(one-thread-per-connection),所以 MySQL 在处理复杂查询的时候,会出现“一核有难,多核围观”的尴尬现象。
参考 %us 的定义,对于 Linux 系统来说,MySQL 进程和它启动的所有线程都不算内核进程,因此 MySQL 的系统线程和用户线程在繁忙的时候,都会体现在 CPU 使用率的 %us 指标上。
什么时候CPU会100%
MySQL 干什么的时候,CPU 会 100%?从前文的分析来看,MySQL 主要是两类线程占用 CPU:系统线程和用户线程。因此 MySQL 独占的服务器上,只需要留意一下这两类线程的情况,就能 Cover 住绝大部分的问题场景。
系统线程
在实际的环境中,系统线程遇到问题的情况会比较少,一般来说,多个系统线程很少会同时跑满,只要服务器的可用核心数大于等于 4 的话,一般也不会遇到 CPU 100%,当然有一些 bug 可能会有影响,比如这个:
MySQL BUG
虽然情况比较少,但是在面对问题的常规排查过程中,系统线程的问题也是需要关注的。
用户线程
提到用户线程繁忙,很多时候肯定会第一时间凭经验想到慢查询。确实 90% 以上的时候都是“慢查询”引起的,不过作为方法论,还是要根据分析再去得出结论的~
参考 us% 的定义,是指用户线程占用 CPU 的时间多少,这代表着用户线程占用了大量的时间。
一方面是在进行长时间的计算,例如:order by,group by,临时表,join 等。这一类问题可能是查询效率不高,导致单个 SQL 语句长时间占用 CPU 时间,也有可能是单纯的数据量比较多,导致计算量巨大。另一方面是单纯的 QPS 压力高,所以 CPU 的时间被用满了,比如 4 核的服务器用来支撑 20k 到 30k 的点查询,每个 SQL 占用的 CPU 时间并不多,但是因为整体的 QPS 很高,所以 CPU 的时间被占满了。
问题的定位
分析完之后,就要开始实战了,这里根据前文的分析给出一些经典的 CPU 100% 场景,并给出简要的定位方法作为参考。
PS:系统线程的 bug 的场景 skip,以后有机会再作为详细的案例来分析。
慢查询
在 CPU 100% 这个问题已经发生之后,真实的慢查询和因为 CPU 100% 导致被影响的普通查询会混在一起,难以直观的看 processlist 或者 slowlog 来发现尊敬的大船,这时候就需要一些比较明确的特征来进行甄别。
从前文的简单分析可以看出来,查询效率不高的慢查询通常有以下几种情况:
全表扫描:Handler_read_rnd_next 这个值会大幅度突增,且这一类查询在 slowlog 中 row_examined 的值也会非常高。
索引效率不高,索引选错了:Handler_read_next 这个值会大幅度的突增,不过要注意这种情况也有可能是业务量突增引起的,需要结合 QPS/TPS 一起看。这一类查询在 slowlog 中找起来会比较麻烦,row_examined 的值一般在故障前后会有比较明显的不同,或者是不合理的偏高。
比如数据倾斜的场景,一个小范围的 range 查询在某个特定的范围内 row_examined 非常高,而其他的范围时 row_examined 比较低,那么就可能是这个索引效率不高。
排序比较多:order by,group by 这一类查询通常不太好从 Handler 的指标直接判断,如果没有索引或者索引不好,导致排序 *** 作没有消除的话,那么在 processlist 和 slowlog 通常能看到这一类查询语句出现的比较多。
当然,不想详细的分析 MySQL 指标或者是情况比较紧急的话,可以直接在 slowlog 里面用 rows_sent 和 row_examined 做个简单的除法,比如 row_examined/rows_sent >1000 的都可以拿出来作为“嫌疑人”处理。这类问题一般在索引方面做好优化就能解决。
PS:1000 只是个经验值,具体要根据实际业务情况来定。
计算量大
这一类问题通常是因为数据量比较大,即使索引没什么问题,执行计划也 OK,也会导致 CPU 100%,而且结合 MySQL one-thread-per-connection 的特性,并不需要太多的并发就能把 CPU 使用率跑满。这一类查询其实是是比较好查的,因为执行时间一般会比较久,在 processlist 里面就会非常显眼,反而是 slowlog 里面可能找不到,因为没有执行完的语句是不会记录的。
这一类问题一般来说有三种比较常规的解决方案:
读写分离,把这一类查询放到平时业务不怎么用的只读从库去。
在程序段拆分 SQL,把单个大查询拆分成多个小查询。
使用 HBASE,Spark 等 OLAP 的方案来支持。
高 QPS
这一类问题单纯的就是硬件资源的瓶颈,不论是 row_examined/rows_sent 的比值,还是 SQL 的索引、执行计划,或者是 SQL 的计算量都不会有什么明显问题,只是 QPS 指标会比较高,而且 processlist 里面可能什么内容都看不到,例如:
processlist
总结
实际上 CPU 100% 的问题其实不仅仅是单纯的 %us,还会有 %io,%sys 等,这些会涉及到 MySQL 与 Linux 相关联的一部分内容,展开来就会比较多了。本文仅从 %us 出发尝试梳理一下排查&定位的思路和方法,在分析 %io,%sys 等方面的问题时,也可以用类似的思路,从这些指标的意义开始,结合 MySQL 的一些特性或者特点,逐步理清楚表象背后的原因。
1、MySQL GUI Tools包括:MySQL Query Browser
MySQL Administrator
MySQL Migration Toolkit
MySQL System Tray Monitor
2、MySQL Query Browser主要功能介绍:
(1)查看mysql syntax语句句法,函数,参数
(2)标签和历史记录
(3)保存查询,打开查询文件 *.qbquery
(4) 创建数据库(schema),表,视图,存储过程/函数,删除,编辑表,视图,拷贝表结构。
(5)创建新的连接,切换连接。
MySQL Administrator主要功能介绍:
(1)启动/停止mysql服务
(2)用户连接次数,线程
(3)健康状况查看:
连接健康实时曲线图查看(连接使用率,流量,sql查询数)
内存健康查看(Query Cache Hitrate,Key Efficiency)
状态变量查看(普通,性能,网络,执行的命令,混合,新变量)
系统变量查看(普通,连接,SQL,内存,表类型,新变量)
(4)启动变量编辑
(5)服务器,服务器实例,客户端信息查看
(6)备份与恢复整个数据库或1至多个表,定时备份.
(7)目录(catalog):
选定数据库创建,编辑表(索引,外键,列,存储引擎,字符集,密码,自动增长,最大行,最小行等),维护表(优化,检查,修理),查看选定数据库的
所有索引,创建,删除编辑选定数据库的视图,存储过程。
(8)服务器日志包括:错误日志,普通查询日志,缓慢查询日志
Migration Toolkit:
可以从MS SQL,Oracle等数据库移植复制数据库到Mysql
Mysql System Tray Monitor:
监控CPU使用,管理mysql实例,启动变量,Mysql服务,服务器日志。设置扫描间隔(1,2,5,10,30秒,1分钟)
2、Mysql workbench是另一种Mysql工具:
(1)添加EER 图表(Extended Entity-Relationship的缩写)
(2)使用默认Schema,创建新表,新的视图等对象
(3)可以导入SQL脚本
3、Navicat与MySQL GUI Tools比较有以下优势:
1.最新的MySQL版本支持,支持Mysql数据库新对象如事件,MySQL GUI Tools不能支持事件对象.
2.支持SSH连接到MySQL服务器,MySQL GUI Tools没有此功能设置
3.支持SSL安全连接,MySQL GUI Tools没有此功能
4.备份连接信息,MySQL GUI Tools只能查看连接信息,不能备份.
5.过滤记录.智能化输入过滤条件,MySQL GUI Tools没有此功能.
6.导入导出支持17种格式(slk,dif,wk1,wq1,rtf,mdb,sav,ldif等特殊的格式)。
7.结构同步,数据同步.MySQL GUI Tools只有备份和恢复,异种数据库类型间移植数据.
8.调度,创建Batch Job,设置任务调度. 创建一个设定的计划批处理工作,以计划执行一个或多个定期的,指定开始及结束的日期及时间。批处理
可以创建的对象包括查询,报表打印,备份,数据传送,数据同步,导入和导出。发送计划工作的电子邮件通知,产生通知电子邮件给你指定的收件人,让他们取
得最新计划的资讯。通过你在计划中回传结果的电子邮件帐号来直接读取。MySQL GUI Tools只有备份和定时备份.
9.报表设计,打印及定制调度.MySQL GUI Tools则没有报表.
10.创建表/视图的桌面快捷方式,Mysql GUI tools没有此功能.
11.表的复制(duplicate)/清空(empty)/删除(trancate)所有数据.Mysql GUI tools只有drop表,创建
表
12.Navicat自动完成SQL代码,NySQL GUI则不能智能化的输入SQL命令,只能提供SQL语法查询.
13.服务器监控,状态变量与系统变量不仅可以像MySQL GUI tools一样可以查看,还可以编辑。
下面是每一种产品主要功能的说明。大部分客户还喜欢拿Navicat与的管理员工具-phpMyAdmin比较。
MySQL Migration Toolkit:
这个工具包的主要功能是从相关的数据库系统移植schema和数据到MySQL.
它仅仅支持JDBC/ODBC兼容的数据库文件如Oracle,MS SQL,MS Access,因而移植能力十分有限。对于Navicat,不仅
支
持与JDBC/ODBC兼容的数据库而且还有一些其它的流行的数据格式如Excel,PDF,HTML,dBase和XML.
界面:不像Navicat那么优美直观。
价格:
平台支持:Windows,Mac OS X和Linux
MySQL Administrator:
不仅仅是一个MySQL服务器配置工具,还可以监控它的状态和性能,启动和停止它。管理用户和连接和性能备份。
MySQL Administrator不能用来创建数据库,表或一些其他的MySQL对象,不能用于查询数据库。而且还没有一些Navicat的高级
功能如导入/导出,数据同步,任务调度和报表。
界面:不像Navicat那么优美直观。
价格:
平台支持:Windows,Mac OS X和Linux
MySQL Query Browser:
这个工具仅允许用户创建,执行和优化MySQL数据库。这个工具的主要目的是帮助用户查询和分析存储在MySQL数据库的数据。
界面:不像Navicat那么优美直观。
价格:
平台支持:Windows,Mac OS X和Linux
MySQL Workbench:
MySQL Workbench是一个MySQL数据库ER模型工具.一般被认为是“MySQL数据库设计工具”。用户可以用它设计,编辑,维护和比较
数据库。
Navicat没有ER数据库模型工具,但是计划在今年第三季度支持它。
MySQL Workbench有一个社区版本和标准版本,商业用户需支付99美元也只是用于支持Windows系统。
Navicat是一款强大的易用的工具。Navicat几乎将以上工具的所有特点融合在了一起,在访问数据表,浏览/显示数据和其它 *** 作上运行的更快
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)