找到负载?

找到负载?

我目前使用的是 Linux 系统 (linaro),该系统在 1.2ghz 1gb RAM 板上插入了 2.4ghz 和 5ghz msata 卡。

该板上还有一个网络应用程序(因此人们可以像路由器一样连接到它并将其用作服务器)

这是我的问题:

网页加载时间比应有的时间长。 (约4秒)

我花了一些时间优化 Web,将响应时间降低到 2 秒左右,但这对于 Web 应用程序来说仍然很慢。我想知道在linux系统上找到故障点的最佳方法是什么?我想监控我的系统,看看无线网络(带宽)、处理、mysql 数据库、PHP、内存是否有问题?寻找答案的最佳方法是什么?

我可以修复和优化存在的任何问题,但我需要首先找到瓶颈。

答案1

如果您想在 Linux 系统上调试问题,您可以使用这些工具实时获得高级概述:

  • htop获取 CPU 和内存使用情况的概览
  • iotop查看一般 I/O 吞吐量(必须以 root 身份运行 - “ sudo”)
  • nethogs详细查看网络 I/O(也是 root)

其他一些命令很有帮助,但不是实时的:

  • netstat(我更喜欢sudo netstat -tunap)显示 UDP 和 TCP 连接及其连接状态
  • ls -l /proc/123/fd显示进程 #123 的打开文件描述符(fd 用于所有类型的 I/O)

关于mysql,您还应该考虑不时运行真空并分析您在哪里使用哪些索引。此外,您应该意识到JOINs 或后续SELECTs 很容易成为瓶颈。

我必须补充一点,上述工具集相当低级。在分析/优化 Web 应用程序时,我通常更喜欢使用实际上独立于操作系统的更高级的工具。日志文件很有帮助,您应该考虑使用print它来记录时间戳。这样您就可以了解函数的哪一部分需要多长时间执行。通常 I/O 操作是最慢的。

我也真的推荐使用网页测试.org,它为您提供了来自浏览器的所有 HTTP 请求的漂亮瀑布图。

相关内容