apache调优
    可调整的内核参数
       1、调整下列内核参数解决出现大量的TIME_WAIT
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
参数说明:
然后执行 /sbin/sysctl -p 让参数生效。
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN***,默认为0,表示关闭;

net.ipv4.tcp_tw_reuse = 1表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间
       2、调整内核参数是apache的keepalive开启占用更少的资源
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_time = 1800
参数说明:
tcp_keepalive_time  默认值是7200(2小时)
当keepalive打开的情况下,TCP发送keepalive消息的频率。(由于目前网络***等因素,造成了利用这个进行的***很频繁,曾经也有cu的朋友提到过,说如果2边建立了连接,然后不发送任何数据或者rst/fin消息,那么持续的时间是不是就是2小时,空连接***?tcp_keepalive_time就是预防此情形的.我个人在做nat服务的时候的修改值为1800秒)

tcp_keepalive_probes  默认值是9
TCP发送keepalive探测以确定该连接已经断开的次数。(注意:保持连接仅在SO_KEEPALIVE套接字选项被打开是才发送.次数默认不需要修改,当然根据情形也可以适当地缩短此值.设置为5比较合适)

tcp_keepalive_intvl  默认值为75
探测消息发送的频率,乘以tcp_keepalive_probes就得到对于从开始探测以来没有响应的连接杀除的时间。默认值为75秒,也就是没有活动的连接将在大约11分钟以后将被丢弃。(对于普通应用来说,这个值有一些偏大,可以根据需要改小.特别是web类服务器需要改小该值,15是个比较合适的值)
        3、调整内核参数,使之可支持更多的listen队列和syn队列
net.ipv4.tcp_max_syn_backlog =1024
net.core.somaxconn = 128
参数说明:
net.ipv4.tcp_max_syn_backlog:
    syn的消息队列长度,使系统可以处理更多的并发连接
当服务器负载繁重或者是有很多客户端都是超长延时的连接故障,可能会导致half-open连接数量的增加。这对于Web服务器很来讲很平常,尤其有很多拨号客户时.这些half-open连接保存在 backlog connections 队列中.将这个值最少设置为8192 (缺省为1024). 即便是服务器不接收这类连接,设置这个值还能防止受到denial-of-service (syn-flood)的***
net.core.somaxconn:
这个参数会影响到所有AF_INET类型socket的listen队列,在高突发的请求中可能会导致链接超时或者触发重传。
  
        4、调整内核参数增大socket的缓冲区,其中有冲突默认值以tcp自己的为准;最大值冲突时,以net.core.mem_max为准
net.core.wmem_default = 2097152 #108544,系统套接字缓冲区
net.core.rmem_default = 2097152 #108544,系统套接字缓冲区
net.core.rmem_max=16777216   #131071,系统套接字缓冲区
net.core.wmem_max=16777216 #131071,系统套接字缓冲区
net.ipv4.tcp_rmem=4096 87380 16777216  #4096   87380   174760, TCP接收缓冲区
net.ipv4.tcp_wmem=4096 65536 16777216 #4096  16384   131072, TCP发送缓冲区
net.ipv4.tcp_mem = 786432 1048576 1572864 # Out of socket memory。以page为单位

基于cpu的考虑
       1、因为每个访问都会产生一个进程,会对cpu的load造成负担,因此需要调整apache的最大允许的进程数。apache配置文件的prefork。
       2、可以隔离一个cpu处理,将apache进程绑定在单独的cpu上:
先查看隔离自己的第二颗cpu在 /boot/grup/grup.conf 中添加lsolcpus=1;重启之后,将apache绑 定在第二颗cpu上taskset2 /etc/init.d /httpd  restart
       3、如果cpu的load一直很高,就应该考虑做分发了。

基于内存的考虑
       1、apache有很多的模块,如果这些模块都加载进来的话,会造成许多内存的浪费,因为有很多不用的模块。所以要去掉不用的模块。
       2、apache的进程数,socket套接字的数量,syn队列的长度,listen队列的长度,都会消耗内存,因此这些值的设定,要考虑内存

基于I/0的考虑
       1、可以将apache服务单独挂在一个独立的磁盘系统上,该磁盘系统可以用多个IO同时读写,比如lvm -i ,或者是raid 0。
       2、挂在apache时可以取消写atime的功能。
       3、apache的日志功能,可以使之写入独立的日志服务器上,减少对本机的io压力。如果写入本机,可以参考上面的1,写入独立的磁盘系统中。
       4、在BI/O层使用deadline算法,减少相应的速度。
       5、可以在内存中开辟出独立的空间,当硬盘来使用,以后数据处理时都可以直接写到这里来,增加了io速度。最好将静态页面放在这里。
        mkdir -pv /tmp/mm
        mount -o size=500M -t tmpfs none /tmp/mm 
       500M 内存到这个目下,以后在对数据处理时,就相当于往内存中写,而这些数据不会因清空缓存而数据丢失,而是相当于做了一个预热(保证数据都在内存中,把内存当作硬盘来用)

其他的一些考虑
       1、apache要开启keepalive模式,减少连接的次数。
       2、但是每增加一个连接,就会使用一个文件描述符,因此需要增加文件描述符的数量

转载于:https://blog.51cto.com/6241921/1092111

apache调优详解相关推荐

  1. Java生产环境下性能监控与调优详解 大纲 学习感悟

    Java生产环境下性能监控与调优详解 生产环境发生了内存溢出如何处理? 生产环境应该给服务器分配多少内存合适? 如何对垃圾收集器的性能进行调优? 4.生产环境CPU负载飙高该如何处理? 5.生产环境应 ...

  2. Java生产环境下性能监控与调优详解 第2章 基于JDK命令行工具的监控

    Java生产环境下性能监控与调优详解 第2章 基于JDK命令行工具的监控 2-1 JVM的参数类型 标准参数 x参数 XX参数 2-2 查看JVM运行时参数 2-3 jstat查看JVM统计信息 2- ...

  3. 笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解

    笔记 | 百度飞浆AI达人创造营:深度学习模型训练和关键参数调优详解 针对特定场景任务从模型选择.模型训练.超参优化.效果展示这四个方面进行模型开发. 一.模型选择 从任务类型出发,选择最合适的模型. ...

  4. 深度学习模型训练和关键参数调优详解

    深度学习模型训练和关键参数调优详解 一.模型选择 1.回归任务 人脸关键点检测 2.分类任务 图像分类 3.场景任务 目标检测 人像分割 文字识别 二.模型训练 1.基于高层API训练模型 加载数据集 ...

  5. 机器学习模型评估与超参数调优详解

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤  深圳大学,Datawhale高校群成员 机器学习分为两类 ...

  6. Java生产环境下性能监控与调优详解 第7章 JVM层GC调优

    第7章 JVM层GC调优 7-1 JVM的内存结构 7-2 常见的垃圾回收算法 7-3 垃圾收集器-1 7-4 垃圾收集器-2 7-5 GC日志格式详解 7-6 可视化工具分析GC日志 7-7 Par ...

  7. k-means聚类算法原理与参数调优详解

    https://www.toutiao.com/a6690435044869145101/ k-means算法原理 K-means中心思想:事先确定常数K,常数K意味着最终的聚类类别数,首先随机选定初 ...

  8. JAVA生产环境验证_Java生产环境下性能监控与调优详解

    本课程将为你讲解如何在生产环境下对Java应用做性能监控与调优:通过本课程,你将掌握多种性能监控工具应用,学会定位并解决诸如内存溢出.cpu负载飙高等问题:学会线上代码调试,Tomcat.Nginx, ...

  9. php+php-fom+nginx配置参数调优详解

    文章目录 一.前言 1.mysql配置参数: 2.注意 二.php参数配置及讲解 1.phpini的基本设置 2.php参数设置 三.php-fpm设置 1.设置子进程数,增加并发量 2.防止频繁出现 ...

最新文章

  1. Java 树形结构数据生成--不需要顶级节点
  2. 如何区分Android wrap_content和fill_parent的详细说明
  3. 独立集,覆盖集,支配集,最大团,最大匹配
  4. 江苏信息考试access_2016年江苏省信息技术学业水平测试Access操作题
  5. 【Microstation】第一章:Microstation三维模型构建概述
  6. C++ p63作业 2
  7. js使用的一些实用技巧
  8. pip和requests模块的安装
  9. 蚁群算法原理及其实现(python)
  10. 科技周刊第十期:自顶向下还是自底向上?
  11. 提供全套Python教学资源和考试系统,全力打造良心服务
  12. 2015最好用的PHP开源建站系统
  13. 汇总 | 嵌入式软硬件领域各种“黑科技”
  14. 为什么我说低代码是“行业毒瘤”?
  15. Civil 3d 将平面结构物投影到纵断面上
  16. Python软件编程等级考试四级——20211205
  17. C++笔记 关于string的笔记
  18. Latex/WinEdt中文编辑
  19. [OfficeExcel] OfficeExcel2010 第16讲 文本处理函数
  20. 4G军备竞赛:中兴华为领跑国内 三星独霸一方

热门文章

  1. python多态的概念_Python 多态
  2. MT8870DTMF解码器测试
  3. Matplotlib绘制简单函数的梯度下降法
  4. 信号转换 | 将对称方波转换成倍频PWM波形
  5. MAR-8ASM射频放大器测试
  6. python随机产生10个不同的两位数_python解决两位数加减法快速出题问题
  7. 查询出来时间不对_2020年一级、二级建造师执业资格考试成绩可查询!
  8. linux架构接口层教程,在LINUX平台上进行成功实现RIL层功能和框架层应用
  9. Linux 内核网络子系统 总结 (未完待续)
  10. win10 Linux子系统 交叉编译器注意事项