我的 apache2 服务器有问题,我不太确定如何最好地调试它。
我看到的是:
- 我有一个 PHP 脚本,用于渲染条形码。当服务器外部请求此脚本时,响应如您所料(> 1 秒)
- 我正在同一服务器上的另一个脚本中使用该脚本的输出,使用 GD 将条形码嵌入另一幅图像中。出于某种原因,使用 PHP(特别是使用 imagecreatefrompng())获取条形码图像的请求非常慢,至少需要 15-20 秒
我该如何调试这个问题?我谷歌了一下,目前最好的猜测是 DNS 查找速度慢 - 我该如何最好地检查这个问题?如果是这种情况,最简单的解决方法是什么?
编辑:我相当确定问题与从第一个脚本请求图像有关,原因是如果请求额外的图像,第二个脚本运行非常慢,但如果不请求图像,则运行速度很快。嵌入的条形码并不是唯一进行的图像渲染(有相当多的文本渲染和图像复制发生),但只有当我包含条形码时,速度才会变慢。
答案1
您是否知道该问题是否发生在图像渲染或 php 代码中?
如果是在 php 中,您可以安装一些加速器(如 APC)或使用一些 zend 函数来加速交付。如果是在图像渲染中,您可能会遇到 CPU/内存限制。运行 top 时您的平均负载是什么样的。输入 free 时又会怎样。您是否遇到了磁盘缓存。所有这些都与性能直接相关。
我的建议是尝试弄清楚这是软件问题还是硬件/资源问题,然后从那里着手解决。祝你好运!