设为首页 收藏本站
查看: 1764|回复: 0

[经验分享] 浅析apache调优

[复制链接]

尚未签到

发表于 2018-11-24 11:42:08 | 显示全部楼层 |阅读模式
apache调优
    关于调优可以围绕着cpu、内存、i/o、网络这四个方面进行调优。其实不管是apache还有nginx都是基于这几个方面进行调优。

   关于cpu方面

     可以对apache的配置文件进行修改
     vim /etc/httpd/conf/httpd.conf
     ------ apache进程模式(比线程模式安全 但是消耗cpu )
     StartServers 8 ---------- 服务启动时的服务进程数目
     MinSpareServers 5 ------- 服务进程最小数目不得小于5
     MaxSpareServers 20 ------ 服务进程的最大数目不得大于20
     ServerLimit 256 --------- 和maxclients设置一样
     MaxClients 256 ---------- 服务器最多允许256个人同时在线(进程下的子进程)
     MaxRequestsPerChild  4000--- 每个进程最多同时处理4000个网页请求   
  

     ****** 如果要使用线程的话 建议使用nginx******
  


  内存、I/O

  

    
DSC0000.png

  applications   应用层

    文件描述符(fd) 打开或新建一个文件时都会创建一个文件描述符 如果fd没有了 即使有空间也   不能创建文件   
  

    文件描述符默认是1024个
  

    可以修改 /etc/security/limits.conf

    在末尾添加*   soft(软限制) nofile 102400(描述符个数) 软限制:超过这个数会警告
              *   hard(硬限制) nofile 102400     硬限制:超过这个数直接报错,并不让创建

  

    如果文件在内存中打开 rm -rf 删除了文件后 也可以通过fd进行恢复数据
  

   ******在这层还需要熟练掌握lsof命令******
   lsof -p 1(pid) -----查看1进程打开了那些文件
   lsof -f -- /dev/initctl    ----- 查看/dev/initctl被哪个进程调用
   losf -d +/目录  -------查看目录下文件被那些进程调用
   ****************************************
  

   file system   文件系统
   文件系统中包括两点:1、i节点
                       2、block块
  

  i节点是数据的源数据 它包括atime  访问时间  只要访问这个文件就会改变atime
                            ctime  修改时间  源数据(属主、组、内容修改、访问时间)修改
                            mtime  改变时间  数据内容修改
  

  调优时我们可以不记录atime 来节省I/O 从而提高速度
  mount /dev/sda3 /var/www/html -o noatime
  

  BLOCK块
  dumpe2fs -h /dev/sda3 查看sda3盘的i节点 block块

   DSC0001.png
Inode count -------i节点的数量
Block count --------block数量
Reserved block count ---------保留的block数,只有root有权限
Free blocks -------空闲的block块
Free inodes --------空闲的i节点


page cache 页面缓存 (把文件的请求缓存到内存中,下次访问从内存中读取,使访问速度加快)


这个如果要优化就只能加内存了


需要记住 Buffers 缓存小数据(i节点)
                Cached 缓存大数据


free -m 查看内存命令
pagecache的工作原理是 使用自己的内存 如果自己本身的内存不够了,去抢缓存的(此时会自动同步脏数据),如果还不够就要去借swap的了(尽量不要去借swap的内存,占用swap会极大的降低服务器性能)


干净数据 ----- 内存中与磁盘上数据一样的
脏数据 ------- 内存中与磁盘上不同的数据(内存中更新了而磁盘上未更新)


使用sync命令 可以强制同步脏数据
系统中的pdflush进程(每隔一段时间自动同步)是用来同步脏数据的



Echo 3 > /proc/sys/vm/drop_caches
清除内存中的干数据,来释放内存



Block I/O layer:Request Queues 输入输出
这一层起到的是承上启下的作用 之前的操作全是在内存中的 这层是直接定位到磁盘上了


使用的是电梯算法 就像坐电梯一样 他会把数据进行排序以及同类的数据进行合并 就如同坐电梯 如果有三个人,第一个去2层一个之后来了一个去3层最后的一个还去2层,当到了2层后他们两个人会同时下去。


这一层有4种针对服务的算法:

Noop ------------固态硬盘算法 优点节省cpu
Anticipated ------预期算法,吞吐量好,nfs samba vfstp文件服务器
Deadline ---------实时响应性好,apache web服务器
Cfq ---------------默认完全公平队列 进程特多都能分到资源


通过echo ‘算法' >  /sys/block/hda/queue/scheduler修改
    cat  /sys/block/hda/queue/scheduler 查看


我们可以通过top命令里查看 %wa的值来判断是不是I/O问题。数值大证明有问题


还可以通过安装iostat命令: iostat 1 3 -------1秒一次刷新3次




伪设备层可以做read0提速 以及lvs





网络

根据你的pv量看看是否需要增加带宽








运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638997-1-1.html 上篇帖子: nginx 和apache 性能测试对比 下篇帖子: apache、tomcat目录遍历修复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表