我正在运行一个 php 网站。我有两台服务器。
请帮我检查一下这个 Mysql 数据库服务器负载是否过高?我发现 mysql CPU 使用率始终高于 100%。有什么优化建议吗?
我正在使用 CentOS 版本 5.8 Mysql 5.1.63-cll MySQL 社区服务器
4 个 Intel Xeon 2.13G 处理器 总内存:4 G
我的cnf
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 100M
thread_concurrency = 4
max_connections = 600
max_user_connections=600
答案1
是?不是?视情况而定?
如果您的服务器正在处理批处理作业 - 您可能会最大限度地利用您的资源。如果它被用作某些交互式/网络应用程序的后端 - 那就不好了。
随机提示:
- 审查您的查询
- 开始记录慢查询并进行分析
- 使用mysqltuner.pl或者percona 的配置向导
答案2
简短的回答:不,负载不太高。
关于此的一些细节
您有 4 个处理器,并且您可以看到没有 iowait (0.0%wa)。
如果您有 iowait,它可能会显示您使用的存储太慢,无法为处理器提供足够快的数据。但是由于没有 iowait,因此存储不是造成负载的原因。
假设您有 4 个处理器,那么 1.5 的负载根本无需担心。事实上,直到负载持续超过 5 时,您才应该开始担心负载问题。
关于负载的一些知识
让我们用 CPU 核心来打个比方。假设每个核心都是一个管子。平均负载描述的是需要通过管子的水量。
1 根管子意味着我们可以毫无顾虑地处理 1 根负载。这意味着如果你有很多水,负载就会增加,因为管子不够大,无法让所有的水通过。(水被处理)
因此,如果您有 4 个核心 - 您可以轻松处理 4 个负载,而不必担心添加更多管子 :)
我希望这是有意义的。
编辑:显而易见
如果您只为 1 名用户提供服务,并且用户很少做任何事情,那么您的代码可能非常糟糕,您应该考虑进行优化。但是,如果您正在运行一个相当繁忙的应用程序,我不会打开红灯。