这是服务器的 CPU 使用率图表:
看起来 CPU 使用率已达到 24 的硬限制。这是一台 32 核服务器,因此应该可以轻松超过 24。但事实并非如此。
这台服务器的 CPU 使用率是否有上限?我该如何查明?
顺便说一下,这是在 CentOS 5.5 上运行 Percona (MySQL) Server 5.1 的数据库服务器
答案1
您可能受到 I/O 或内存限制,而不是 CPU 限制。如果您的 CPU 卡在等待磁盘、网络或内存,它不会只是为了消耗周期而消耗周期。如果您使用的程序没有被编写为能够识别超过 24 个内核,那么这也可能是软件限制。
答案2
您必须查看每个 CPU 的 CPU 利用率。我用dstat -ta 10
它来查看。由于图表是一条直线,因此排除了负载可能受 I/O 限制的可能性。现在您必须了解为什么 MySQL 没有使用所有 CPU。另请参阅:http://dev.mysql.com/doc/refman/5.5/en/connection-threads.html