V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  liuxu  ›  全部回复第 50 页 / 共 145 页
回复总数  2899
1 ... 46  47  48  49  50  51  52  53  54  55 ... 145  
2020-11-19 13:56:22 +08:00
回复了 reyleon 创建的主题 程序员 PHP -fpm 服务器内存占用陡坡式上涨,请问如何彻底解决?
@liuxu 如果楼主设置的进程数后,发现并发变低,cpu 负载消耗也低,可以适当调大数值。大概就是 1s 内,100ms 是 cpu 运行,900ms 是 io 等待的话,可以把 1 个进程调整到 5-10 个进程。至于为什么不是直接 10 个进程,是因为考虑进程数多了 cpu 上下文切换带来的消耗,有时候 10 个进程还没有 8 个进程并发高。
2020-11-19 13:49:57 +08:00
回复了 reyleon 创建的主题 程序员 PHP -fpm 服务器内存占用陡坡式上涨,请问如何彻底解决?
都是对的

首先内存确实是 zend 一次申请一块大内存,而不是系统调用,因为系统调用代价很高
php 脚本代码释放掉的内存也是给了 zend 内核,而不是还给系统
引用计数释放掉的内存和 php_request_shutdown 释放掉的内存都是还给 zend,zend 不还给系统

fpm 的运行原理是:
a. fpm 是多进程的,是同步 io,也就是 php 脚本代码调用 io 请求会阻塞,例如 http 请求,mysql 请求,文件读写
b. fpm 的每个进程有自己的 zend 内核在运行,每个进程维护自己的内存块
c. fpm 可以设置最大进程数,避免内存使用过高,例如 20 个,不用设置太大,因为 cpu 上下文切换在高并发时返而会消耗大量 cpu,具体根据业务请求阻塞 io 调整
d. fpm 可以设置每个进程可以接受的请求数,超过这个请求数就结束进程重新再起一个,避免内存泄露

根据以上可知,想调整 fpm,需要关注内存和接收并发的能力,文档: https://www.php.net/manual/zh/install.fpm.configuration.php

下面给出例子:
1. 楼主为了避免内存一直占用,需要限制 php 进程数。根据楼主的硬件配置,目前不知道楼主的业务,这里给出假设。
2. 设置 pm 为 dynamic,然后设置 max_children 为 64,这样可以限制 fpm 最大启用 64 个进程。
3. 设置 start_servers 为 16,为 fpm 启动时为 16 个进程,这样 fpm 可同时处理 16 个请求。
4. 设置 min_spare_servers 为 16,这样空闲时最小为 16 个进程,max_spare_servers 为 32,空闲时最大为 32 个进程。至于 fpm 空闲时到底会因为什么原因在这个区间伸缩,等我有时间看了相关内核源码再说。。
5. 设置 max_requests 为 10240,为每个进程处理 10240 个请求进程就结束进程重启起一个新的,避免内存泄露。


注:可以根据 xhprof ( php7 可以使用 Tideways )做分析
2020-11-18 21:01:20 +08:00
回复了 upyunopentalk 创建的主题 推广 直播活动: eBPF 的收益和工作流程分享
@Livid 推广
2020-11-18 10:47:04 +08:00
回复了 huangya 创建的主题 Linux ubuntu 18.04 看起来不能自动检测到新内核,要手动升级内核
do-release-upgrade

先看下相关文档和备份问题
2020-11-13 21:19:38 +08:00
回复了 scriptB0y 创建的主题 Linux OS X 与 Linux 桌面发行版的快捷键冲突有什么好的解决办法吗?
直接买 pc 装 Fedora

顺道 50 收 mac,解君愁

卖家包邮
2020-11-09 11:40:35 +08:00
回复了 chenduoduo 创建的主题 Linux Linux 服务器被劫持
以前追查代码,发现在 smarty 内核里,加密过
2020-11-06 14:23:22 +08:00
回复了 chenqh 创建的主题 Linux tail 有替代品的吗?
tail -f
2020-11-06 14:22:38 +08:00
回复了 fengpan567 创建的主题 程序员 有大佬用过 Gitlab 的 CICD 吗
gradle clean build -x test || echo "success"
检查走完没
打倒 CentOS,还世界一个光明的未来!
2020-11-04 10:11:19 +08:00
回复了 zhanghua0 创建的主题 Linux VMware 上的 Arch Linux 的 KDE 桌面渲染炸了
@wszgrcy 因为传教。

来用 ubuntu 吧,不卡。
2020-11-03 22:30:50 +08:00
回复了 kingkongs 创建的主题 Linux policycoreutils 这个依赖是干嘛用的?
selinux 的预配置文件和工具
2020-11-03 14:52:53 +08:00
回复了 anzu 创建的主题 NAS 群晖与威联通因 btrfs 打起来了!
@hjc4869 灵车好,飘逸
2020-10-08 18:44:55 +08:00
回复了 q4869wwwty 创建的主题 Linux Thinkpad x390, 打算彻底换成 Ubuntu,有没有什么硬件上的坑?
@RickyC 不香
@jin7 过来人
AMD,YES !
2020-09-27 14:43:02 +08:00
回复了 vevlins 创建的主题 程序员 几百万图片 url 转云存储,有什么好办法
@jowan 打这个报告的意义是为了帮助 Livid 更好的维护 v2ex
2020-09-26 23:34:39 +08:00
回复了 vevlins 创建的主题 程序员 几百万图片 url 转云存储,有什么好办法
@Livid 5 楼推广号,gxlonline
2020-09-25 16:58:41 +08:00
回复了 chen887625as 创建的主题 推广 基于 ECS 搭建 GitLab 服务
@Livid 小白文推广
2020-09-23 18:58:32 +08:00
回复了 licraft 创建的主题 程序员 当程序员说这个需求下班前提测......
挫骨扬灰吧
1 ... 46  47  48  49  50  51  52  53  54  55 ... 145  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3121 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 04:57 · PVG 12:57 · LAX 21:57 · JFK 00:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.