如何衡量MySQL服务器的当前负载?

时间:2009-10-01 15:23:22

标签: mysql performance profiling

如何衡量MySQL服务器的当前负载?我知道我可以测量不同的东西,如CPU使用率,RAM使用率,磁盘IO等,但是是否存在通用负载测量,例如服务器负载为40%等?

7 个答案:

答案 0 :(得分:14)

mysql> SHOW GLOBAL STATUS;

找到here

答案 1 :(得分:8)

“40%负载”的概念并没有真正明确定义。您的特定应用程序可能对不同资源的约束做出不同反应应用程序通常受以下三个因素之一的约束:可用(物理)内存,可用CPU时间和磁盘IO。

在Linux(或可能是其他* NIX)系统上,您可以使用vmstatiostat(提供有关磁盘IO的更多详细信息)获取这些系统的快照。

但是,要将这些连接到“40%负载”,您需要了解典型负载下数据库的性能特征。执行此操作的最佳方法是在不同负载下测试典型查询,直到您观察到响应时间急剧增加(这意味着您已经遇到了内存,CPU或磁盘的瓶颈)。应将此负载视为您不希望超出的临界级别。

答案 2 :(得分:4)

使用top或htop,您可以按照Linux实时中的使用情况进行操作

答案 3 :(得分:4)

是否存在通用负载测量,例如服务器负载为40%?

是的!有:

SELECT LOAD_FILE("/proc/loadavg")

适用于linux机器。它显示过去1,5和15分钟的系统负载平均值。

  

系统负载平均值是处于可运行或不可中断状态的平均进程数。处于可运行状态的进程要么使用CPU,要么等待使用CPU。   处于不可中断状态的进程正在等待某些I / O访问,例如等待磁盘。平均值是在三个时间间隔内取得的。负载平均值未针对数量进行标准化   系统中的CPU,因此平均负载为1表示单个CPU系统一直在加载,而在4 CPU系统上则意味着它在75%的时间内处于空闲状态。

因此,如果你想要规范化,你还需要计算cpu的数量。

你也可以用

做到这一点
SELECT LOAD_FILE("/proc/cpuinfo")

另见'man proc'

答案 4 :(得分:2)

在基于Linux的系统上,标准检查通常是正常运行时间,根据描述的here指标返回负载索引。

答案 5 :(得分:1)

除了本页上的所有好答案(SHOW GLOBAL STATUS,VMSTAT,TOP ...)之外,还有一个非常简单易用的工具,由Jeremy Zawodny编写,非常适合非管理员用户。它被称为“mytop”。更多信息@ http://jeremy.zawodny.com/mysql/mytop/

答案 6 :(得分:0)

嗨,朋友,根据我的研究,我们有一些命令,如

  • MYTOP:使用PERL语言编写的开源程序
  • MTOP:也是一个用PERL编写的开源程序,与MYTOP的工作方式相同,但它会监视花费较长时间并在特定时间后杀死它们的查询。

Link for details of above command