ero*_*ppa 13 mysql performance profiling
如何衡量MySQL服务器的当前负载?我知道我可以测量不同的东西,如CPU使用率,RAM使用率,磁盘IO等,但有一个通用的负载测量,例如服务器负载为40%等?
"40%负载"的概念并没有真正明确定义.您的特定应用程序可能对不同资源的约束做出不同反应 应用程序通常受以下三个因素之一的约束:可用(物理)内存,可用CPU时间和磁盘IO.
在Linux(或可能是其他*NIX)系统上,您可以使用vmstat或获取这些快照,或者iostat(提供有关磁盘IO的更多详细信息).
但是,要将这些连接到"40%负载",您需要了解典型负载下数据库的性能特征.执行此操作的最佳方法是在不同负载下测试典型查询,直到您观察到响应时间急剧增加(这意味着您已经遇到了内存,CPU或磁盘的瓶颈).应将此负载视为您不希望超出的临界级别.
小智 5
是否有通用的负载措施,例如服务器处于 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”
| 归档时间: | 
 | 
| 查看次数: | 28689 次 | 
| 最近记录: |