apache php 调优_记一次apache+php调优
近日手头拿到了一个调优问题,详细一看,发现是apache+php问题,问题的具体表现如下:
正常运行的服务常常停止响应, 一旦停止响应, 维护人员就不得己需要去重启apache服务
对php不熟,调查过程也顺便学习一下php的基本配置。
2015-3-11 调试
首先去服务器进程看了看,发现有一个 http.exe 在后台一直占用%50左右的 cpu,即使通过 Moniter 结束了服务,这个进程也依然坚挺,始终占用固定的CPU, 打开perfmon.exe,发现 内存换页频繁,且都是硬错误,估计就是那个进程导致的,直接结束之。 结果cpu一下子就下来了。
又研究了部分参数设置,尤其是 mpm_module 相关的设置
通过以下命令可以查看加载的模块
httpd -l
发现mpm_module的的加载情况和实际配置不符,windows系统中,其实只加载了后者,实际配置如下:
# 配置了mpm_winnt_module以后,mpm_prefork_module就不起作用了
# 可以通过 httpd -l查看当前加载的模块
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 256
MaxRequestsPerChild 500
# mpm_winnt_module 该多路处理模块(MPM)是Windows NT上的默认值。它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。StartServers定义的进行启动
# ThreadsPerChild 200 启动的线程数,公司bbs平常都在20+,暂时这样配置节省内存资源
# MaxRequestsPerChild 10000 这个模式只启动两个进程(httpd.exe)一主一子,子进程执行10000个请求以后会被终止,然后另起一个
# Win32DisableAcceptEx Use accept() rather than AcceptEx() to accept network connections,
# 另外重启apache时候,先关闭,并且结束所有httpd.exe,再启动,不要直接restart,会遗留下httpd的进程不关
ThreadsPerChild 400
MaxRequestsPerChild 10000
Win32DisableAcceptEx
AcceptEx()是一个微软的WinSock2 API ,通过使用BSD风格的accept() API提供了性能改善。一些流行的Windows产品,比如防病毒软件或虚拟专用网络软件,会干扰AcceptEx()的正确操作。如果遇到类似于如下的错误:
[error] (730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.
就需要使用这个指令来禁止使用AcceptEx() 。
对于windows操作系统,可以使用专用的mpm_winnt_module,来提高性能,但是参数配置要注意。
2015-3-18 调试
观察了几天,发现还是有问题,找错误日志去看了看,发现了一个问题
FATAL: erealloc(): Unable to allocate 98304 bytes
每次运行到一个阶段,apache就会出现无法回收内存的严重问题,这样一来,用不了多久就得重启了
经过调查,从apache的 bug 一路找过去,最后发现这个是php的一个 bug,但是都没有解决。。。
最后又找了一阵子,发现一个 论坛 中有讨论,找到一句靠谱的话
Looks like php related.
You are using outdated/legacy PHP 4 and Apache 2.0, not anymore supported for quite some time.
It is a known issue with a PHP before 5.3 that it has memory management and stability issues.
#The most common solution for this kinfd of errors was using PHP with Fast CGI (mod_fcgid). I do not know there is still somewhere a version for Apache 2.0.
Also I see also PHP warnings: Undefined variable: id_vue libelle_vue.
随后我找了一个php5.2.7稳定版进行升级,升级以后,做了简单的并发访问,没有打印异常。
继续观察观察
apache php 调优_记一次apache+php调优相关推荐
- 古筝d调变降e调怎么办_从d调调到e调,教你古筝的操作方法
古筝从d调调到e调,早艺网教你古筝的操作方法.古筝,作为现在很多年轻人喜欢的乐器,许多朋友反映不知道如何从D调转到E调,今天就让小编跟大家介绍古筝如何由D调转E调,希望大家喜欢! 古筝由D调转E调的方 ...
- java面试 系统调优_面试官:Java性能调优你会多少?一个问题就把我问的哑口无言,哭了!...
一.前言 什么是性能调优? 性能调优其实很好理解,就是优化硬件.操作系统.应用之间的一个充分的协作,最大化的发挥出硬件的极致性能,来应对高负载的业务需求. 为什么需要性能优化? 其实说到底就是两个原因 ...
- 台式电脑屏幕怎么调亮度_电脑屏幕亮度到底怎么调才最好?
受到再大的打击,只要生命还在,请相信每天的太阳都是新的. Hello,大家好,我是BoBo 一个喜欢做公众号,但是做的又有点糙的非科班小编. 这里没有华丽的排版,也没有长长的套路,有的只是一颗真心,喜 ...
- s120面板控制调速_棒材生产线S120辅传动装置调速方法概述
龙源期刊网 http://www.qikan.com.cn 棒材生产线 S120 辅传动装置调速方法概述 作者:张青秀 来源:<科学与信息化> 2018 年第 10 期 摘 要 本文主要介 ...
- 变频调速_三相异步电机原理_U/F调速/矢量控制_机械特性_负载特性
一.前言 工控项目中多数常见的以三相异步电机为驱动执行电机,为此了解电机工作原理,更好的与变频器控制使用达到最佳控制效果,参考哈工大课件!!! 二.三相异步电机运行原理 (1)三相感应电动势工作模型 ...
- 大泥王怎么调时区_卡西欧大泥王怎么调时间 卡西欧大泥王功能教学
卡西欧大泥王相信很多人都十分熟悉的,这个系列的手表在卡西欧家一直挺火,十分适合户外佩戴,那么卡西欧大泥王手表怎么调时间呢? 卡西欧大泥王怎么调时间 1.首先点击左上边的按键进入设置功能. 2.然后按一 ...
- apache php 调优_性能优化之PHP优化
一.语言级性能优化(一) PHP 性能问题的解决方向 PHP语言级别的性能优化 => PHP周边问题的性能优化 => PHP语言自身分析.优化 1.压力测试工具 Apache Benchm ...
- DataPipeline |《Apache Kafka实战》作者胡夕:Apache Kafka监控与调优
胡夕,<Apache Kafka实战>作者,北航计算机硕士毕业,现任某互金公司计算平台总监,曾就职于IBM.搜狗.微博等公司.国内活跃的Kafka代码贡献者. 前言 虽然目前Apache ...
- OCM_第十二天课程:Section6 —》数据库性能调优_ 资源管理器/执行计划
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
最新文章
- 在Ubuntu 14.04 64bit上安装配置sublime text 3(Build 3083)
- 8个方法解决90%的NLP问题
- fopen需要改写成fopen_s的时候
- TCP/IP协议栈到底是内核态好还是用户态好?
- OC开发_整理笔记—— CoreLocation(1)基本使用
- 转载:python引用DLL文件的方法
- cmd查看某个服务器端口状态,cmd中检测端口是否处于监听状态 | IT博客
- 企业文化:谦虚(谦逊,虚心)
- Android设备的ID
- MyBatis的ResultMaps之一对一关系
- [梦]2005年9月1日
- 解决Android 应用运行报Unable to resolve superclass of L错误
- 语言学句法分析树形图怎么画_英语语言学树形结构图怎么画
- 洛谷p3376 网络流最大流模板题
- 如果张柏芝的孩子长大
- 2022 计算机视觉顶会论文----目标检测
- leetcode第六题 Z字形变换
- 电脑声音太小,安装音量提升插件
- 榛果 美团 登录 爬虫 requests session
- echarts 导入地区.json文件生成地图