在写这篇文章之前,首先不得不感慨一下国内流行的诟病,---是什么原因造成了国内网上对IT各种资料各种技术的各种方案,甚至很多是错误的方法层出不穷,甚至来说你百度一下,搜到很多博客上写来的都是原封不动的一模一样的内容,因为大多数的人都没有经历过一个求证,为了追求访问量或者别的什么吧,就只是一个复制粘贴,然后发布了事,-----这样会耗费我们这些菜鸟很多很多的时间,当然在这些我们查找的过程中也极为的更深的了解了我们所要学习的东西,从另一个方面来说也要谢谢他们。
---------------------------------本人博客要么转载要么绝对属于自己理解所得给大家分享,谢谢来访,希望能认识到更多linux圈子内的朋友,一起交流,更多的提升我们的水平。
--------------------------------淫荡的分割线,进入正题-------------------------------
很早就会搭建LAMP环境了,----对于大部分的新手来说对着鸟哥的书能够很轻松的自己搭建一个LAMP环境出来,可能搭出来有的人还不知道LAMP这四个字母的含义--------------
最近看到一个面试题,问apache工作模式,天可怜见,笔者我以前是真没注意过这个,汗颜路过。
所以在网上找了很多资料,就是对我们都很习惯的,剔除那些糟粕的一个过程,整理了一下,奇怪的是我在apache官网的FAQ上没有搜索到相关的问题。
默认的rpm包安装时apache默认使用的是Prefork的模式,
prefork模式通俗点说就是一个多进程单线程模式,一个进程只含有一个线程,它的缺点就是相对work模式非常占用内存,在流量非常大的服务器上可能会使用work模式,当然笔者认为这主要根据公司实际情况来看了,如果这个公司不是很缺钱访问量中等采用这个prefork完全可以,毕竟work那种模式的第三方模块的安全性能还不够好,这个仁者见仁,智者见智----------------
prefork下默认maxclients为256,如果要加大(一般我觉得都是要加大的)就要加上Serverlimit的限制
ServerLimit最大200000,
笔者还没毕业也没参加过工作,确实不知道生产环境中究竟用什么样的。
work模式就是多进程多线程,一个进程可以包含多个线程,而每个进程下的线程是共享内存的,
缺点就是一个线程崩溃的话连带这个进程下的所有线程都会崩溃掉
在这个work里边,threadlimit 默认为64,最大20000,如果你的环境中64个thread不能满足要求的话,就必须要加大,要用threadlimit来声明了,注意MaxClients必须是ThreadsPerChild的整数倍
贴一个我自己弄的prefork的设置和work的设置
prefork 例:
StartServers 10
MinSpareServers 10
MaxSpareServers 15
ServerLimit 2000
MaxClients 1000
MaxRequestsPerChild 10000
work 例:
StartServers 3
MaxClients 2000
ServerLimit 25
MinSpareThreads 50
MaxSpareThreads 200
ThreadLimit 200
ThreadsPerChild 100
MaxRequestsPerChild 0
#####最大活跃进程数=2000/100=20<=25
阅读(1387) | 评论(0) | 转发(0) |