如何判断服务器的瓶颈在哪里?

如何判断服务器的瓶颈在哪里?

我有一台 LAMP 服务器,上面有一个大型数据库,用于处理大量请求。如果服务器速度开始变慢,我该如何判断瓶颈是数据库、处理器、磁盘 I/O、带宽还是其他什么?我该如何在实时服务器上执行此操作,也就是说,我不想为了进行基准测试而关闭服务器。

答案1

检查每一种可能性......top或者htop检查处理器/RAM的使用情况,看看哪个进程消耗了更多的资源,数据库的查询速度很慢,网络监控带宽等等。

答案2

哪些地方利用率较高? 系统会告诉你什么htopiotop你在交换吗?

从终端或 ssh 运行命令

答案3

不幸的是,在 MySQL 上,没有办法查询按不带变量的查询分组的最耗时的查询列表。

运行长时间运行的查询报告总是好的,但它可能不是最耗时的(一个快速运行的查询,称为最多的查询,如果你以某种方式将内存和 CPU 消耗减少一半,可以大大减少你的工作量)

在数据库上,您的性能问题可能是由设计(设计不良的模型)、服务器性能(尝试将索引和数据文件放在不同的分区上)或简单的查询优化引起的。

尝试确定您网站的哪个部分特别慢以及调用次数。尝试结合这 2 个信息来确定最终的瓶颈。

在 MySQL 上识别特定的性能不佳的查询很麻烦。

相关内容