php-fpm运行一段时间,内存不足

目录

一:原因分析

二:解决

三:观察系统情况


php-fpm运行一段时间,内存不足,是什么原因呢。

一:原因分析

1:首先php-fpm的配置  

(1)启动的进程数  启动的进程数越多,占用内存越高;

2:其次程序处理逻辑,处理完内存是否释放;

程序处理完,内存为什么不释放呢(我的都是http请求,只要请求不出错,处理完会自动释放);

(1)查看内存占用

ps -A --sort -rss -o comm,pmem,pcpu |uniq -c |head -15    占用内存排序

查看php-fpm cpu占有率排序

ps -A --sort -rss -o comm,pmem,pcpu |grep php-fpm|awk '{print $3}'|sort

查看php-fpm的内存超过1%的pid

ps aux|grep php-fpm|grep -v grep|awk '{if($4>=0.6)print $2}'

ps -ylC php-fpm --sort:rss        php-fpm占用内存情况

(2)查看php-fpm占用的平均内存

ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'

发现平均是24M内存,一共100个进程 也就是2个多G

3:我的服务器一直会写日志

导致 系统cache缓存越来越大 所以导致系统内存越来越小

4:查看php-fpm的日志php-fpm.log

从2017-3到2017-8查看日志变化

正常的执行时间超过2s进程过程:

WARNING: [pool www] child 20690, script '/data/wwwroot/sdk.youjoy.tv/index.php' (request: "GET /api/user/info") executing too slow (2.109854 sec), logging

[09-Mar-2017 22:04:18] NOTICE: child 20690 stopped for tracing

[09-Mar-2017 22:04:18] NOTICE: about to trace 20690

[09-Mar-2017 22:04:18] NOTICE: finished trace of 20690

执行超时的日志

 20709, script '/data/wwwroot/newddzgzh.youjoy.tv/index.php' (request: "POST /index/getreward") execution timed out (60.143872 sec), terminating

[10-Mar-2017 21:36:37] WARNING: [pool www] child 20704, script '/data/wwwroot/newddzgzh.youjoy.tv/index.php' (request: "POST /index/valid") execution timed out (60.158891 sec), terminating

[10-Mar-2017 21:36:37] WARNING: [pool www] child 20704 exited on signal 15 (SIGTERM) after 357304.947644 seconds from start

[10-Mar-2017 21:36:37] NOTICE: [pool www] child 6897 started

[10-Mar-2017 21:36:37] WARNING: [pool www] child 20709 exited on signal 15 (SIGTERM) after 357304.930312 seconds from start

二:解决

1(优化php-fpm的库)

(1)查看库

pmap $(pgrep php-fpm|head -

发现内存载入的大文件

/usr/lib/locale/locale-archive

这个文件是关于语言支持的,默认包含各种语言和字符集支持,服务器用的是字符界面,根本不需要那么多,有en_US.UTF-8就差不多了,最多加个中文zh_CN

查看语言支持列表

localedef --list-archive

cd /usr/lib/locale/

mv locale-archive locale-archive.old

添加en_US.UTF-8和中文

localedef -i en_US -f UTF-8 en_US.UTF-8

 1036  localedef -i zh_CN -f UTF-8 zh_CN.UTF-8

 1037  localedef -i zh_CN -f GB2312 zh_CN

 1038  localedef -i zh_CN -f GB2312 zh_CN.GB2312

 1039  localedef -i zh_CN -f GBK zh_CN.GBK

 1040  localedef -f UTF-8 -i zh_HK zh_HK.UTF-8

 1041  localedef -f UTF-8 -i zh_TW zh_TW.UTF-8

 1042  localedef -f UTF-8 -i zh_SG zh_SG.UTF-8

 pmap $(pgrep php-fpm|head -n 1)

2:查看slow.log

找出执行慢的代码,优化代码,减少执行时间,这样就能更快处理,及时释放内存;

3:通过观察发现php-fpm从重启完 每个进程占用0.4 到后来的0.6%  变化不太大;

slabtop 查看slabcache使用

跟踪进程的执行:

strace -fp 27868(pid) -e trace=stat

strace -fp 27868 -e trace=open,stat,close,unlink 

考虑系统cache占用一直增加;

调整系统cache让系统自动回收

(1) 查看 释放内存临界值:

grep low /proc/zoneinfo  最低

3个值相加*4KB 就是内存阈值

为640M

grep high /proc/zoneinfo  最高

(2)

sysctl -w vm.min_free_kbytes=524200  设置最小的空闲物理内存为512M(这些内存应用程序是不能占用的,是给系统用的)

sysctl -w vm.vfs_cache_pressure=130  加快cache的释放 默认100 越大释放越快 

/proc/sys/vm/vfs_cache_pressure

该文件表示内核回收用于directory和inode cache内存的倾向;缺省值100表示内核将根据pagecache和swapcache,把directory和inode cache保持在一个合理的百分比;降低该值低于100,将导致内核倾向于保留directory和inode cache;增加该值超过100,将导致内核倾向于回收directory和inode cache。

查看结果

sysctl -a|grep vm

三:观察系统情况

运行top,查看占用情况

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/278550.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用MATLAB构建特殊通用矩阵

在MATLAB编程中,经常需要遇到一些特殊的通用矩阵,本篇主要介绍的是MATLAB中可能会用到特殊矩阵。 1、零矩阵 MATLAB使用zeros函数来创建零矩阵,所谓零矩阵就是矩阵中所有元素皆为0的矩阵。zeros函数的调用方式如下所示: &#…

archiver error. Connect internal only, until freed.

[64000][257] ORA-00257: archiver error. Connect internal only, until freed.原因 归档日志写满了、闪回日志写满了(根本原因是服务器磁盘写满了) # 切换到oracle服务 su - oracle# 使用sysdba用户登录 解决方案:(https://blog.csdn.net/qq_37635373/article/details/933282…

uniapp中uview组件库的DatetimePicker 选择器的用法

目录 基本使用 #年 月 日 #格式化 #限制最大最小值 API #Props #Events #Methods 基本使用 通过show绑定一个布尔值变量&#xff0c;用于控制组件的弹出与收起。通过mode配置选择何种日期格式。 <template><view><u-datetime-picker:show"show&qu…

给idea添加右键打开功能

添加文件夹右键程序打开 开始运行regedit 找到 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell 1、右键shell目录新建项Idea 2、右键Idea新建command 3、选择Idea 右侧空白出新建字符串 名字为Icon 值填入idea的运行程序地址 4、选择command 默认项填入idea的运行…

写在2023岁末:敏锐地审视量子计算的当下

本周&#xff0c;《IEEE Spectrum》刊登了一篇出色的文章&#xff0c;对量子计算&#xff08;QC&#xff09;的近期前景进行了深入探讨。 文章的目的并不是要给量子计算的前景泼冷水&#xff0c;而是要说明量子计算的前景还很遥远&#xff0c;并提醒读者量子计算的用例可能很窄…

117基于matlab的短时傅里叶变换(STFT)、小波变换(WT)、同步压缩变换(SST)、瞬态提取变换(TET)进行时频分析

基于matlab的短时傅里叶变换&#xff08;STFT&#xff09;、小波变换&#xff08;WT&#xff09;、同步压缩变换&#xff08;SST&#xff09;、瞬态提取变换&#xff08;TET&#xff09;进行时频分析。程序已调通&#xff0c;可直接运行。 117时频分析短时傅里叶变换 (xiaohong…

一篇文章深入认识微服务SpringCloud和Dubbo的区别

1、SpringCloud是什么 SpringCloud, 基于SpringBoot提供了一套微服务解决方案&#xff0c;包括服务注册与发现&#xff0c;配置中心&#xff0c;全链路监控&#xff0c;服务网关&#xff0c;负载均衡&#xff0c;熔断器等组件&#xff0c;除了基于NetFlix的开源组件做高度抽象…

权威认证|智安云平台荣获公安部首批网络安全产品认证

近日&#xff0c;智安网络云综合防御平台V3.0通过公安部复杂专业的安全测试&#xff0c;荣获了网络安全产品认证证书&#xff0c;据悉&#xff0c;这是公安部颁发的首批证书。 ** 智安网络云综合防御平台 ** 智安网络云综合防御平台是一款基于微服务框架构建的综合型信创云基…

扭蛋机小程序搭建:打造互联网“流量池”

随着互联网科技的发展&#xff0c;扭蛋机小程序成为了市场发展的重要力量。 扭蛋机市从日本发展流行起来的&#xff0c;玩法就是根据设置的概率&#xff0c;让玩家体验扭蛋机的乐趣。扭蛋机中有隐藏款和稀有款&#xff0c;为了获得稀有款商品&#xff0c;玩家便会进行扭蛋&…

Linux CPU 数据 Metrics 指标解读

过去从未仔细了解过使用 top 和 htop 等命令时显式的CPU信息&#xff0c;本文我们详解解读和标注一下各个数据项的含义&#xff0c;同时和 Ganglia 显式的数据做一个映射。开始前介绍一个小知识&#xff0c;很多查看CPU的命令行工具都是 cat /proc/stat 里的数据&#xff0c;所…

鸿蒙Harmony(七)ArkUI--循环foreachList组件自定义组件

循环foreach import Prompt from system.promptclass Item {icon: Resourcename: stringprice: numberconstructor(icon: Resource, name: string, price: number) {this.icon iconthis.name namethis.price price} }Entry Component struct Index {State message: string …

如何确保云中高可用?聊聊F5分布式云DNS负载均衡

在当今以应用为中心的动态化市场中&#xff0c;企业面临着越来越大的压力&#xff0c;不仅需要提供客户所期望的信息、服务和体验&#xff0c;而且要做到快速、可靠和安全。DNS是网络基础设施的重要组成部分&#xff0c;拥有一个可用的、智能的、安全和可扩展的DNS基础设施是至…

人工智能_机器学习084_使用聚类算法_提取图片主要颜色_对图片进行聚类提取特征_对图片进行压缩---人工智能工作笔记0124

然后我们再来看之前我们说聚类是可以进行数据压缩的对吧,现在我们用聚类KMeans进行 对图片主要特征颜色提取,来压缩图片 首先看一下我们准备的一张图片 首先导包,显示一下图片 import numpy as np 导入数学计算包 import matplotlib.pyplot as plt 导入画图工具包 import …

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】ShuffleNet_V2模型算法详解

【图像分类】【深度学习】【轻量级网络】【Pytorch版本】ShuffleNet_V2模型算法详解 文章目录 【图像分类】【深度学习】【轻量级网络】【Pytorch版本】ShuffleNet_V2模型算法详解前言ShuffleNet_V2讲解四条实用指导思想G1:相等的通道宽度可以降低存储访问成本G2:大量的分组卷积…

C++单例设计模式

C单例设计模式 文章目录 C单例设计模式单例设计模式介绍饿汉式单例设计模式懒汉式单例设计模式什么是可重入函数 单例设计模式介绍 单例模式指的是&#xff0c;无论怎么获取&#xff0c;永远只能得到该类类型的唯一一个实例对象&#xff0c;那么设计一个单例就必须要满足下面三…

横屏转竖屏:一键轻松转换,让视频更适应屏幕!

想象一下&#xff0c;你有一批横屏视频&#xff0c;想要将它们快速变为适应手机竖屏观看的格式&#xff0c;但又不想一个个手动处理。现在&#xff0c;有了我们的创意批量剪辑神器&#xff0c;这些烦恼全部消失&#xff01;只需简单几步&#xff0c;就能将横屏视频批量变身成为…

VScode的入门手册(IDEA迁移到VScode)

从IDEA迁移到VScode的过程中&#xff0c;会有很多不适应的地方&#xff0c;下面算是一篇VScode的入门手册&#xff0c;也可以说是从IDEA迁移到VScode的手册。 命令面板&#xff08;Command Palette&#xff09; 允许你快速访问和执行命令。 在 Visual Studio Code 中&#x…

3分钟了解Android中稳定性测试

一、什么是Monkey Monkey在英文里的含义是猴子&#xff0c;在测试行业的学名叫“猴子测试”&#xff0c;指的是没有测试经验的人甚至是根本不懂计算机的人&#xff08;就像一只猴子&#xff09;&#xff0c;不需要知道程序的任何用户交互方面的知识&#xff0c;给他一个程序&a…

0开始配置Cartographer建图和导航定位

0开始配置Cartographer 日期&#xff1a;12-19 硬件&#xff1a;激光雷达IMU 小车的tf变换&#xff1a; 建图配置 lua文件配置&#xff1a;my_robot.lua include "map_builder.lua" include "trajectory_builder.lua"options {map_builder MAP_BUILDE…

【音视频 ffmpeg 学习】 RTMP推流 mp4文件

1.RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议。 2.RTMP协议中基本的数据单元称为消息&#xff08;Message&#xff09;。 3.当RTMP协议在互联网中传输数据的时候&#xff0c;消息会被拆分成更小的单元&#xff0c;称为消息块&#xff08;Chunk&#xff…