V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tmtstudio
V2EX  ›  程序员

求大佬, PHP 项目 cpu 占用过高,内存占的很少,这个可能是什么原因

  •  
  •   tmtstudio · 357 天前 · 1179 次点击
    这是一个创建于 357 天前的主题,其中的信息可能已经有所发展或是发生改变。

    8 核 32g 的服务器,线上两千人左右,是相互交易买卖的业务场景,pref 跑过了,看不懂是哪块的问题,求指点

    p9zK1D1.png

    p9zKhKs.png

    13 条回复    2023-06-01 19:10:08 +08:00
    defunct9
        1
    defunct9  
       357 天前   ❤️ 2
    开 ssh ,让我上去看看
    garlics
        2
    garlics  
       357 天前
    代码有死循环?
    john2022
        3
    john2022  
       357 天前
    你 session 是用文件存储的?换成 redis 试试
    rushssss
        4
    rushssss  
       357 天前
    opcache 开了吗?从火焰图上看似乎和文件系统有点关系,如果没有打开的话可以打开试试
    tmtstudio
        5
    tmtstudio  
    OP
       357 天前
    @john2022 没用 session ,全局搜了都没用到这个函数
    LLaMA2
        6
    LLaMA2  
       357 天前
    y 轴表示调用栈

    x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长。

    看顶层的哪个函数占据的宽度最大,表示该函数可能存在性能问题。
    raysonlu
        7
    raysonlu  
       357 天前
    顺便请教一下,如果 php 进程存在 IO 等待,是否会导致出现这个问题?
    LLaMA2
        8
    LLaMA2  
       357 天前
    IO 等待不会线性的影响 CPU 使用率,IO 等待极大概率会跑满读写利用率
    bobzhangyong
        9
    bobzhangyong  
       357 天前
    看看是不是循环批量调用了 session_start 函数
    colinlikepotatos
        10
    colinlikepotatos  
       357 天前
    查一下 session 目录 和自己有写文件缓存的目录,看看是不是有目录下的文件过多导致的,有一次用文件记录访问 IP 导致写了几十万个文件。。也出现过类似的情况,xfs 都是文件系统相关的,估计有点关系
    wangxin13g
        11
    wangxin13g  
       357 天前
    看了下好像都是文件调用耗时,检查下文件读写
    8355
        12
    8355  
       357 天前   ❤️ 2
    猜测你的配置文件里应该开启了 session.auto_start
    单机在线人数过多影响了磁盘 io 导致等待
    验证方法:
    先找到机器存放 session 的文件夹看看里面有多少文件
    安装个 iotop 看一下现在的读写情况
    关闭 session.auto_start
    再看一下负载
    tmtstudio
        13
    tmtstudio  
    OP
       357 天前
    @8355 @colinlikepotatos 感谢大佬,真的是 session 读写占的 cpu
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3490 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 00:54 · PVG 08:54 · LAX 17:54 · JFK 20:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.