目前我有这台服务器
processor : 3
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Xeon(TM) CPU 2.40GHz
stepping : 9
cpu MHz : 2392.149
cache size : 512 KB
我的应用程序导致更多96%的CPU使用到MySQL,每秒200-300个事务。 任何人都可以提供协助,并提供如何链接我
答案 0 :(得分:8)
数据库用户常见的误解是CPU使用率很高。
不是。
数据库只有一个速度:尽可能快。在管理员设置限制内,它总是会耗尽它可以快速执行查询的所有资源。
大多数查询比其他查询需要更多的特定资源。对于大型数据库上的大多数查询,资源是磁盘I / O,因此数据库将尽可能快地打破您的存储。在等待硬盘驱动器时,它通常无法执行任何其他工作,因此线程/进程将进入休眠状态并停止使用CPU。
较小的数据库或对大型数据库中的小型数据集的查询通常完全适合RAM。操作系统将缓存来自磁盘的数据,并将其置于RAM中,并准备在数据库请求时返回。这意味着数据库不会等待磁盘并被强制进入休眠状态,因此它会全力以赴地处理CPU中的数据,以便快速获得答案。
您可能关心CPU使用的原因有两个:
首先,不要怪数据库。这是一个管理问题。将操作系统调度程序控制设置为不错的级别,以重新确定工作负载的优先级 - 或者让更大的服务器能够完成您所需的所有工作而不会落后。
对于第二点,您需要查看数据库调优,查询等。这不是“数据库使用100%cpu”问题,它是“我没有获得足够的吞吐量并且似乎是CPU-约束“问题。数据库和查询调优是一个很大的主题,我不会在这里讨论,特别是因为我一般不使用MySQL。