背景

之前有写一个php 爬虫定时任务,发现系统的内存飞快的上涨,直觉告诉我应该是php内存泄漏惹得祸。
于是用。

killall php

杀掉了php 的进程。从内存占用78%,变成了20%

解决方案

方案一

像上面描述。在凌晨的时候把进程给kill 了。
或者查看php 进程内存占用百分比,如果达到 了一定高度时候,给kill了。

方案二

php-fpm.conf中有个参数pm.max_requests,等同于PHP_FCGI_MAX_REQUESTS。该值的意思是一个fpm进程处理多少个请求后自动杀掉另起新进程。(这个好想也不推荐)

优化方案

1。应当尽可能减少静态变量的使用,在需要数据重用时,可以考虑使用引用(&)。

2。数据库操作完成后,要马上关闭连接;

3。一个对象使用完,要及时调用析构函数(__destruct())

4。用过的变量及时销毁(unset())掉

5。可以使用memory_get_usage()函数,获取当前占用内存 根据当前使用的内存来调整程序

6。unset()函数只能在变量值占用内存空间超过256字节时才会释放内存空间。(PHP内核的gc垃圾回收机制决定)

7。有当指向该变量的所有变量(如引用变量)都被销毁后,才会释放内存(PHP变量底层实现是一个_zval_struct结构体,is_ref__gc表示引用计数 is_ref__gc表示是否为引用)

php 定时任务,内存溢出相关推荐

  1. 一次使用Eclipse Memory Analyzer分析weblogic内存溢出

    前言 在平时开发.测试过程中.甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题.我们需要找造成OutOfMemoryError原因.一般有两种情况 ...

  2. java 内存溢出快速定位

    背景:线上数据传输功能开启一段时间后就会出现内存溢出 个人理解:内存溢出,说明要不然获取到大量数据导致内存溢出,要不然就是数据无法释放,随着时间堆积越来越多. 日志:查看日志定位是数据传输处的内存溢出 ...

  3. Flink批处理metaspace内存溢出问题

    问题 早上过来发现定时任务出现告警,Flink Jobs运行失败,登录Flinkweb后台一看,所有jobs都没了,slot也为0. 查看Flink日志,有以下错误异常: 2022-12-07 08: ...

  4. Tomcat内存溢出解决方法

    Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在 ...

  5. 深入理解Java虚拟机——第二章——Java内存区域与内存溢出异常

    运行时数据区域 Java虚拟机运行时数据区域 程序计数器 程序计数器可以看做是当前线程所执行的字节码的行号指示器.字节码解释器工作时就是通过改变这个计数器的值来选取下一条所需要执行的字节码指令,分支. ...

  6. Java内存溢出详解之Tomcat配置

    Java内存溢出详解 转自:http://elf8848.iteye.com/blog/378805 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError ...

  7. 解决Mask RCNN训练时GPU内存溢出问题

    首先自己是个小白对于如何使用GPU跑程序这个学习了一下: (1)使用的是putty,安装了Anaconda这个IDE环境,用的conda install tensorflow-gpu安装的GPU版本t ...

  8. 内存溢出和内存泄漏的定义,产生原因以及解决方法(面试经验总结)

    一.定义(概念与区别) 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory:比如申请 了一个integer,但给它存了long才能存 ...

  9. 从内存溢出看Java 环境中的内存结构

    作为有个java程序员,我想大家对下面出现的这几个场景并不陌生,倍感亲切,深恶痛绝,抓心挠肝,一定会回过头来问为什么为什么为什么会这样,嘿嘿,让我们看一下我们日常在开发过程中接触内存溢出的异常: Ex ...

  10. JVM内存溢出的几种情形

    1.堆溢出 原因:大量对象占据了堆空间,而这些对象都有强引用导致无法回收,当对象大小之和>Xmx参数指定的堆大小时导致溢出! List<byte[]> list = new Arra ...

最新文章

  1. 浅谈几种区块链网络攻击以及防御方案之其它网络攻击
  2. Qt for Android / ios 将图片或文件打包进安装包中
  3. led大屏按实际尺寸设计画面_年会活动要用LED大屏还是投影?专业行家都是看这些数据。...
  4. 把握人工智能命脉的有效方法
  5. 【定时同步系列2】16QAM调制+OM定时+信号分段处理+误码率曲线之MATLAB仿真(复信号模型)
  6. 【学习笔记】第二章——信号量机制 用信号量实现互斥、同步
  7. Hibernate 入门----第一个Hibernate应用程序
  8. java 图片上传_java web图片上传和文件上传实例
  9. JAVA团队开发手册 - 2.代码管理
  10. LINUX的bash的一些特性
  11. 遗传算法拟合函数(原理及Python实现)
  12. python输出数字三角形_蓝桥杯:数字三角的Python解决方案,三角形,之,解答
  13. 中国的粮食储备,多的远超你想象,抢粮的人纯粹是傻冒
  14. python实现csv行列转置
  15. 中国计算机学会青年计算机科技论坛
  16. XMAN选拔赛官方Writeup
  17. Android 人脸识别签到(二)
  18. linux中C编译命令,linux下命令行下编译c程式
  19. java音频剪切_Java使用IO流实现音频的剪切和拼接
  20. 电商系统-优惠券叠加规则、优惠分摊介绍(三)

热门文章

  1. Linux socketpair详解
  2. 蜂花以“穷”出圈,国货营销失去想象力了吗?
  3. 认识IBM 随机启动选项及优化 -转
  4. C#使用BarTender打印条码
  5. 【鹅厂手游安全部门电话一面】
  6. 银行数字化转型导师坚鹏:商业银行数字化风控(1天)
  7. python 美化ppt_5分钟python:给PPT自动添加精美的图形
  8. 软件分析与设计UML旧货交易平台建模 心得
  9. oracle aud$ 导出,Oracle备份审计表SYS.AUD$和SYS.FGA_LOG$
  10. 基于联想拯救者Lenove Rescuer 15ISK(进取版)的笔记本加装支持NVMe协议SSD固态硬盘的注意事项