首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
宝塔
V2EX  ›  问与答

PHP 程序,负载均衡到两台服务器, CPU、内存等等参数都非常好,就是程序执行时间突然特别长

  •  1
     
  •   m939594960 · 2018-02-08 21:02:10 +08:00 · 1395 次点击
    这是一个创建于 650 天前的主题,其中的信息可能已经有所发展或是发生改变。

    PHP 程序,负载均衡到两台服务器,CPU、内存等等参数都非常好,就是程序执行时间突然特别长。

    平时的时候程序执行的时间也就在 200ms~1s 之间,今天下午突然访问量有点大,很多程序的执行时间都到了 3s~5s 但是查看了一下服务器的状态,CPU、内存都十分正常,不超过 30%。 redis 和 mysql 都是用的阿里云的,负载也十分正常。 请问下这种情况一般是什么造成的,应该具体怎么去排查?

    第 1 条附言  ·  2018-02-09 08:30:50 +08:00
    谢谢大家,问题已经 解决了,非常弱智的问题。是 mysql 查询的问题,我在接口的部分 foreach 循环查了 20 几次表。 然后每次都并不算慢,但是并发量一大稍微慢点之后就会被 foreach 放大 拖慢整个接口。
    10 回复  |  直到 2018-02-09 11:14:30 +08:00
        1
    vibbow   2018-02-08 21:37:37 +08:00
    看看 io wait 呢?
        2
    defunct9   2018-02-08 22:04:11 +08:00 via iPhone
    无法判断
        3
    woscaizi   2018-02-08 22:21:13 +08:00 via iPhone
    非常可能是 mysql 的锅,可以查一下是否存在慢查询。
        4
    cxbig   2018-02-08 22:22:09 +08:00 via iPhone
    分析 profile 看看慢在哪
        5
    akira   2018-02-08 23:08:39 +08:00
    看下 redis 和 mysql 的 慢日志记录,应该会有收获。
    比较通用的做法肯定是上性能分析了,分小部分流量去一台做了性能分析的机器,然后看到底是哪个地方耗时了。这样的话,分析起来就比较有针对性和目的性了
        6
    em70   2018-02-09 02:31:31 +08:00
    ping 一下 ECS 和 RDS 之间的延迟有多少,是否用了内部地址
        7
    zjb861107   2018-02-09 02:37:15 +08:00 via iPhone
    会不会是网络问题,比如丢包
        8
    m939594960   2018-02-09 02:53:42 +08:00
    @woscaizi
    @akira 第一件事就是看慢查询,发现都很健康,没有慢查
        9
    cxh116   2018-02-09 07:58:44 +08:00
    php 进程有多少个? 按照你给的一个请求至少 200ms.

    (1000ms / 200ms) * 进程数,就是你最大的并发数.多了就会阻塞等待上个请求完成.
        10
    John60676   2018-02-09 11:14:30 +08:00
    我也觉得是 mysql 的锅
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3384 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 103ms · UTC 04:19 · PVG 12:19 · LAX 20:19 · JFK 23:19
    ♥ Do have faith in what you're doing.