虽然现在已经00:22了,但是还是抑制不住内心的激动,因为解决了好几天以来一直困惑我的问题——服务器httpd服务一直在吃内存,只要有人访问,服务器的内存就会小一点,慢慢的就会被吃掉所有内存,经过几天的研究,最终确定为内存泄漏问题,因为服务器的内存本身就笑,而Apache的默认配置对小内存服务器还是有些不兼容的,比如我遇到的这个内存泄漏。下面就分析一下这个问题。

当然,遇到这种问题,第一时间就是去google上看看有没有类似的问题,结果还真的有,很多站长遇到了跟我相同的问题。回答也都各有千秋,我都照着配置了一遍进行了测试,但是结果并不尽人意,反而也来越糟。

最后,在某一篇文章上看到了还不错的解决方案。然而好像大部分的回答都起了反作用。

一、配置Apache

在Apache的配置文件中找到以下配置

模式1

[cce_xml]

StartServers      8   #数量的服务器进程开始

MinSpareServers   5  #最小数量的服务器进程,保存备用

MaxSpareServers   20  #最大数量的服务器进程,保存备用

ServerLimit      256      #进程的线程数

MaxClients       256      #最大请求并发数,同上值相等即可

MaxRequestsPerChild 30  #最大子进程请求数

1

2

3

4

5

6

7

8

9

[cce_xml]

StartServers     8  #数量的服务器进程开始

MinSpareServers  5 #最小数量的服务器进程,保存备用

MaxSpareServers  20 #最大数量的服务器进程,保存备用

ServerLimit     256     #进程的线程数

MaxClients      256     #最大请求并发数,同上值相等即可

MaxRequestsPerChild30 #最大子进程请求数

模式2

[cce_xml]

StartServers         2

MaxClients         500

MinSpareThreads     25

MaxSpareThreads     75

ThreadsPerChild     25

MaxRequestsPerChild 30

1

2

3

4

5

6

7

8

9

[cce_xml]

StartServers        2

MaxClients        500

MinSpareThreads    25

MaxSpareThreads    75

ThreadsPerChild    25

MaxRequestsPerChild30

上面是Apache的两种模式,一般都是第一种prefork,所以以第一种为例。

参数介绍:startServers是当apache开启的时候创建的进程数,MinSpareThreads是最小的空闲进程数,MaxSpareThreads是最大的空闲进程数,apache会努力的将空闲进程保存在这两者之间,ServerLimit是最大限制的请求并发数,用来限制MaxClients,只要不超过这个数值即可,MaxRequestPerChild是最大子进程请求数,当进程请求数达到这个数值之后就apache就会销毁该进程。

红色字体部分是重点,网上好多地方说可以设置的大一点,但是我测试过了,设置在1000+之后服务内存反而消耗的更快,所以在小内存服务器上最好设置为30-50之间,当然,如果是牛逼的服务器完全不用考虑这一点,设置为0或者1000+都可以,但是不建议设置为0,如果设置为0则代表不释放线程内存,因为不知道apache啥时候可能出现内存泄漏,所以还是不要设置为0。

亲自测试过了。这种配置完全可以解决httpd一直消耗内存的问题。

如果还行进一步优化,还可以开启GZIP压缩,增加网站的打开速度,具体方法见https://www.k2zone.cn/?p=195

问题解决了,时间也不早了,睡觉喽。

1g内存服务器Apache怎么优化,Apache性能优化-解决吃内存的问题 | kTWO-个人博客相关推荐

  1. NEON优化:性能优化常见问题QA

    NEON优化:性能优化常见问题QA NEON优化系列文章: NEON优化1:软件性能优化.降功耗怎么搞?link NEON优化2:ARM优化高频指令总结, link NEON优化3:矩阵转置的指令优化 ...

  2. 前端优化-前端性能优化

    最近前端群里的小伙伴问我,老板喊我做前端优化我该怎么去优化呢?.我思考了了一下,提出了以下几点建议- 文章目录 一.思考 二.可读性优化(不细讲) 1.模块化 2.组件化 3.文件规范 4.commi ...

  3. 【Java】购买腾讯云服务器,并部署Spring boot项目,再到部署自己的个人博客,域名备案,安全连接配置

    云服务器部署 一.购买腾讯云服务器 二.简单配置 2.1 进入控制台 2.2 配置防火墙 2.3 配置访问密码 三.远程ssh登录连接服务器 四.云服务器安装软件 4.1 安装JDK 4.2 安装My ...

  4. 博客推广优化SEO排名方案大汇总!何必东奔西走这里的博客优化的文章应有尽有!!...

    企业 博客优化推广精品方案很有深度,很有参考价值. 建立博客群 博客地址: ①Donews :http://blog.donews.com/default.html ②新浪:http://blog.s ...

  5. Apache Flink OLAP引擎性能优化及应用

    精选30+云产品,助力企业轻松上云!>>> 摘要:最近我们也正打算做OLAP分析平台,在调研的过程中,发现已有的成熟技术只能满足我们的部分需求,相信大家也有这样的困惑,本文分享的是来 ...

  6. Java内存优化和性能优化的几点建议

    doc 阅读下载 1.没有必要时请不用使用静态变量 使用Java的开发者都知道,当某个对象被定义为stataic变量所引用,这个对象所占有的内存将不会被回收.有时,开发者会将经常调用的对象或者变量定义 ...

  7. 查看linux内存优化,Linux性能优化和监控系列(三) 分析Memory使用状况

    Linux性能优化和监控系列(三) 分析Mem 分析Memory使用状况 内存是影响服务器性能的一个主要因素, 当进程已经驻留内存或者系能够分配给进程足够的内存给它, CPU能顺利自如的运行. 如果发 ...

  8. redmine mysql 优化_Redmine性能优化方案

    redmine服务器性能问题排查与优化建议: 以下建议的方案是基于redmine运行期的log文件中的render耗时.activerecord耗时,linux系统性能指标采样与 mysql 性能指标 ...

  9. mysql 8 配置参数优化_MySQL性能优化之参数配置

    1.目的: 通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能. 2.服务器参数: 32G内存.4个CPU,每个CPU 8核. 3.MySQL目 ...

最新文章

  1. IC/FPGA校招笔试题分析(三)
  2. 使用 Application Developer V7 来创建和部署 JSR 168 协作 portlet
  3. linux按进程分配物理内存,linux下内存管理学习心得(一)
  4. 深入理解移动开发的模板复用机制
  5. 摩托罗拉SE4500 德州仪器TI Omap37xx/AM3715/DM3730/AM3530 wince6.0/Windows Mobile 6.5平台 二维软解调试记录及相关解释
  6. 个人作业-Week2
  7. JS高级 - 面向对象3(面向过程改写面向对象)
  8. LeetCode 1027. 最长等差数列(DP)
  9. 基于Tensorflow实现DeepFM
  10. [转] Tomcat 系统架构与设计模式,第 1 部分: 工作原理
  11. 动态规划——最长公共子序列
  12. mysql主从同步问题_mysql主从同步问题整理
  13. 全国大学生电子设计竞赛综合测评硬件调试经验
  14. (九) LBP特征提取
  15. 【CAR笔记2】IGBT相关知识
  16. 吕林涛计算机网络知识点,计算机网络——习题与解析
  17. [xsy2123]毛毛虫
  18. 快速搭建静态网站生成器
  19. 【OpenCall】ICASSP2023通用会议理解及生成挑战赛邀请函
  20. 第1章 计算机系统漫游

热门文章

  1. mysqlbackup企业版物理备份工具使用
  2. 职场人,面试逃不过的灵魂三问
  3. 拉卡拉14年经历四个阶段
  4. 闲聊solr的简单使用
  5. 对计算机专业的兴趣怎么说,我的职业兴趣-我似乎对任何领域都有兴趣,有时会很想知道计算机及其网络是怎么设计运作的,...
  6. 鸿蒙操作系统系列——科普篇
  7. L3-015. 球队“食物链”
  8. Openmeetings—视频会议部署文档
  9. 俄展示第六代战机项目:具备人工智能!
  10. 沁恒USB转串口主要替换FT232/230系列