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

PHP 高并发处理

  •  1
     
  •   liangxunli · 2019-09-04 18:33:42 +08:00 · 12565 次点击
    这是一个创建于 1686 天前的主题,其中的信息可能已经有所发展或是发生改变。
    每天 24 小时都是高并发,10000 左右的并发,有好的解决方案吗?
    部分经常访问的已经使用缓存或者换成静态页面了,但是 PHP-fpm 还是暂用很大的内存
    69 条回复    2019-09-19 10:31:22 +08:00
    laragh
        1
    laragh  
       2019-09-04 18:36:39 +08:00   ❤️ 2
    使用 Swoole server 替代 php-fpm,用 nginx 做反向代理,代理到端口上面
    mhycy
        2
    mhycy  
       2019-09-04 18:41:26 +08:00
    如果缓存都在 PHP 里面做的话还是加机器吧,并发高的情况下就是字符串拼接都能耗掉不少资源
    nigelvon
        3
    nigelvon  
       2019-09-04 18:41:38 +08:00
    1 秒 10000 ?牛掰,简单的方案就是加机器吧。这个量级很高了。
    tomczhen
        4
    tomczhen  
       2019-09-04 18:43:41 +08:00 via Android
    每天 24 小时都是这个程度,不是业务设计不合理就是被攻刷 /爬了吧?
    kanepan19
        5
    kanepan19  
       2019-09-04 18:54:08 +08:00
    我就奇怪你们怎么动不动都有上 W 的并发。
    怕是对并发有什么误解。
    mamahaha
        6
    mamahaha  
       2019-09-04 19:13:16 +08:00
    先查查来访 ip 啊,没异常的话还不花钱请个专家,都这访问量了,舍不着孩子套不着狼啊。
    zjsxwc
        7
    zjsxwc  
       2019-09-04 19:15:58 +08:00 via Android
    单次请求峰值内存占用多少,平均每次请求占用带宽多少,平均每次请求 cpu 占用多少时间,你 tm 都没说,来问个鬼
    luozic
        8
    luozic  
       2019-09-04 19:17:15 +08:00
    1w * 86400 * 0.3 = 0.26 billion/day,这量级非常大。
    MonoLogueChi
        9
    MonoLogueChi  
       2019-09-04 19:24:28 +08:00 via Android
    换其他语言重构吧
    jziwenchen
        10
    jziwenchen  
       2019-09-04 19:37:52 +08:00
    用 nginx 做一个前端负载均衡 禁用不必要的 php 模块 减少 php-fpm 内存占用
    qiayue
        11
    qiayue  
       2019-09-04 19:39:36 +08:00
    你这个流量,每天广告收入都上百万了
    dyyhobby
        12
    dyyhobby  
       2019-09-04 19:54:15 +08:00
    怕不是对并发有什么误解
    chinesestudio
        13
    chinesestudio  
       2019-09-04 22:41:37 +08:00 via Android   ❤️ 5
    每天 2 亿浏览量 都不请架构师么 都世界前 500 的网站了 跑这里搞笑么 。负载均衡 加机器 静态化 cdn 数据库集群。 贴出网站 我免费给你做 只要你达到你说的量。
    default7
        14
    default7  
       2019-09-04 22:46:23 +08:00
    需要硬件支持
    wdlth
        15
    wdlth  
       2019-09-04 22:57:27 +08:00   ❤️ 3
    要是有这么多的用户请求,应该注册开曼群岛的公司,然后去纳斯达克敲钟……
    Leigg
        16
    Leigg  
       2019-09-05 00:22:24 +08:00 via Android
    没钱请 cto ?
    patx
        17
    patx  
       2019-09-05 01:23:59 +08:00
    问个问题也用小号?
    jjshare
        18
    jjshare  
       2019-09-05 02:57:08 +08:00
    加 base64 v 我帮你看看 ampzaGFyZQo=
    stabc
        19
    stabc  
       2019-09-05 07:10:28 +08:00
    并发 10000,估计 1 秒得十万了吧,这么大级别的网站或 APP,全国也没几个吧
    luckylo
        20
    luckylo  
       2019-09-05 07:12:50 +08:00 via Android
    你是不是对并发有什么误解?
    bequt
        21
    bequt  
       2019-09-05 07:20:16 +08:00 via Android
    这么牛逼的, 完全可以请专家了啊
    Yourshell
        22
    Yourshell  
       2019-09-05 08:04:45 +08:00 via iPhone
    ssh 让我上去康康
    lqw3030
        23
    lqw3030  
       2019-09-05 08:18:29 +08:00   ❤️ 3
    老师又瞎布置作业了吗
    wo642436249
        24
    wo642436249  
       2019-09-05 08:41:25 +08:00
    加机器,开 opcache,用 swoole,上 redis 缓存
    xkeyideal
        25
    xkeyideal  
       2019-09-05 09:02:34 +08:00
    我 TM 的都用上 PHP 了,还在乎并发
    tonnycao
        26
    tonnycao  
       2019-09-05 09:05:28 +08:00
    @luozic 为什么要乘 0.3
    Ciallo
        27
    Ciallo  
       2019-09-05 09:17:40 +08:00
    太强了
    liuxu
        28
    liuxu  
       2019-09-05 09:24:35 +08:00
    楼上不要咬文嚼字,楼主的意思就是 qps,10k requests/s
    sujin190
        29
    sujin190  
       2019-09-05 09:24:49 +08:00
    @luozic #8 还有他说的是 1w 并发,不是 1wqps。。
    liuxu
        30
    liuxu  
       2019-09-05 09:26:36 +08:00
    @luozic 我也好奇 0.3 是啥,历史测量后总结的的平均系数?楼主 24 小时满的
    flashrick
        31
    flashrick  
       2019-09-05 09:30:33 +08:00
    老师布置的作业?
    Moker
        32
    Moker  
       2019-09-05 09:40:48 +08:00
    @liuxu 感觉 1W QPS 也是很厉害了
    hiddendeerer
        33
    hiddendeerer  
       2019-09-05 09:51:15 +08:00
    好多都是批判的,咋没有解决问题的呢,还有人借此黑一把
    justfindu
        34
    justfindu  
       2019-09-05 09:55:51 +08:00
    @liuxu
    @tonnycao 应该是每次流量吧 单位可能是 MB
    beckyao
        35
    beckyao  
       2019-09-05 09:58:52 +08:00
    加机器完全 ok 的
    litujin1123
        36
    litujin1123  
       2019-09-05 10:00:24 +08:00
    @hiddendeerer 这么高的并发,你觉得说两句就能解决了?
    linxb
        37
    linxb  
       2019-09-05 10:03:51 +08:00
    每天 24 小时一万的并发?你是不是对并发理解有误啊,真有这么高而且这么持久的并发不会来问这种问题
    jsjscool
        38
    jsjscool  
       2019-09-05 10:32:23 +08:00
    上 swoole 的成本最低
    lolizeppelin
        39
    lolizeppelin  
       2019-09-05 10:32:31 +08:00
    估计是做区块链的 量化交易平台
    这个并发很正常,全是 api 请求

    换语言什么的就算了,等你们换好了估计公司都不在了 233
    出了问题也担不起,老老实实家机器别折腾了,免得背锅 233
    lolizeppelin
        40
    lolizeppelin  
       2019-09-05 10:34:04 +08:00
    唯一可以做的,就是对一些内容变化少的接口加缓存

    上 openrestry
    kiddingU
        41
    kiddingU  
       2019-09-05 11:01:58 +08:00
    1Wqps 也还好,最简单方式就是加机器咯,8 和 16G 的云主机都能抗个几 K 的 QPS
    galikeoy
        42
    galikeoy  
       2019-09-05 11:07:14 +08:00
    老师瞎布置作业嘛,发帖后被 v 友震住不敢说话
    luozic
        43
    luozic  
       2019-09-05 11:47:17 +08:00
    24Hour 也全部 1w request/s 这个难道不是人用的?
    hbolive
        44
    hbolive  
       2019-09-05 11:49:54 +08:00
    @galikeoy 这题超纲了。。
    phpdever
        45
    phpdever  
       2019-09-05 11:58:06 +08:00   ❤️ 3
    醒醒吧,每天分布式,高并发,高可用集群,实际上用户加起来不到 100 个,测试人员比用户还多!
    azh7138m
        46
    azh7138m  
       2019-09-05 12:00:18 +08:00
    @hiddendeerer 可以算一下嘛,这个量级,日 pv 是好几亿的
    有这个流量的,显然加钱啊,单机内存加到 24T,内存还会不够吗(
    cszchen
        47
    cszchen  
       2019-09-05 12:49:59 +08:00 via Android
    性能不够加机器呀
    也别折腾什么 swoole 了
    golden0125
        48
    golden0125  
       2019-09-05 14:17:19 +08:00
    架构上别问,问就是 swoole,另外 LZ 的并发到底是 QPS 还是 TPS?这两者差距很大啊,如果是 QPS 就买 CDN 吧
    irgil
        49
    irgil  
       2019-09-05 14:51:28 +08:00
    是 qps 还是并发啊?并发太可怕了吧。。。。
    kisshere
        50
    kisshere  
       2019-09-05 14:59:32 +08:00
    1W 并发,你真的可以去 NASDAQ 敲钟了,还在这里问问题,每天的收入都可以砸 S 一堆高技术程序员
    lbp0200
        51
    lbp0200  
       2019-09-05 14:59:41 +08:00
    你这个不行,现在我出去面试,动不动问的都是百万并发,然后觉得你薪资要高了。
    jhdxr
        52
    jhdxr  
       2019-09-05 15:43:56 +08:00
    并发 1W ( qps 得 10w 了吧,那 PV 得十亿的量级吧)的网站你还在乎内存不够?加内存加机器啊
    kingOFWorld1
        53
    kingOFWorld1  
       2019-09-05 16:01:56 +08:00
    1 万并发?你的意思是想说 1 天有 1 万个请求吧????
    aaa5838769
        54
    aaa5838769  
       2019-09-05 16:07:00 +08:00
    @kingOFWorld1 1 天一万个请求很不高吧= =
    killerv
        55
    killerv  
       2019-09-05 16:10:46 +08:00
    1 万并发你知道什么概念吗???
    qce7
        56
    qce7  
       2019-09-05 17:02:56 +08:00
    花式黑 PHP
    kingOFWorld1
        57
    kingOFWorld1  
       2019-09-05 17:09:26 +08:00
    @aaa5838769 当然不大了,但是 10000 并发就不一样了,
    wendellup2018
        58
    wendellup2018  
       2019-09-05 17:31:56 +08:00
    cl 能做到
    gaoyulong
        59
    gaoyulong  
       2019-09-05 17:37:07 +08:00
    加机器解决
    ipengxh
        60
    ipengxh  
       2019-09-05 18:53:34 +08:00
    复杂业务逻辑的情况下,加机器都很难打到上万。尤其是返回页面或者大量数据的,瓶颈会出现在各种地方。简单业务的话就是另外一回事了,说不定 CDN 都可以解决
    vigoss
        61
    vigoss  
       2019-09-05 19:40:49 +08:00
    看业务场景呀,如果是抢单秒杀啥的加机器也不好使啊。
    nowgoo
        62
    nowgoo  
       2019-09-05 20:48:58 +08:00
    楼主也就随口一说,早就忘记这事了。看你们一个个认真的……
    jjshare
        63
    jjshare  
       2019-09-06 12:44:57 +08:00
    以前最高处理过 8 万 qps,以前那个公司已经上市~
    GuangXiN
        64
    GuangXiN  
       2019-09-06 12:48:21 +08:00 via Android   ❤️ 1
    @nigelvon 也许只是一万并发连接,不是 10000rps
    components
        65
    components  
       2019-09-06 13:19:13 +08:00
    一楼正解,试试 swoole 吧
    ETO
        66
    ETO  
       2019-09-09 10:39:23 +08:00
    @luozic 0.3 是个什么系数?
    luozic
        67
    luozic  
       2019-09-12 00:37:00 +08:00 via iPhone
    @ETO 正常吹多少并发的一律三分之一看剂量。 因为一般的没有说的这么大的并发量。
    heheda0
        68
    heheda0  
       2019-09-18 17:47:53 +08:00
    这样算下来每天的 PV 太可怕了
    N1ceHua
        69
    N1ceHua  
       2019-09-19 10:31:22 +08:00
    @litujin1123 首先要确定 lz 说的 10000 并发是什么?如果是每天或者每小时 10000PV 那就不叫做事,如果是 1000QPS 情况可能复杂点但是我感觉这个也不现实,但是没你想象的那么复杂都是可以解决的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1064 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 19:09 · PVG 03:09 · LAX 12:09 · JFK 15:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.