中国文化中几乎所有的数字都被冠以特殊的意义,《易》曰:”道生一,一生二,二生三,三生万物”。由于个人知识与经历的限制,无法完成对于万物的探究,但是三以下的数字数字还是可以追述的。
Apache作为万维网首屈一指的高性能Web服务器,如果能够从科学与哲学的角度进行分析,将会对我们的软件开发者的学习工作工作带来极大的好处.
正如《易》曰”书不尽言,言不尽意”,写出来的未必能够表达我说出来的,说出来的未必能够表到我想说出来的。所以如果我不能描绘出我体会到的Apache中内存管理的三种境界,请不要责怪。
OurApache
Apache基础知识
可能有很多系统管理员都为这样的情形而困扰过:Apache进程动辄占用内存几百兆,而且剧烈浮动,变化无常,有时甚至耗掉上G内存。在访问者那里的表现就是网站速度极不稳定,间歇性抽风,有时甚至会有5-30分钟无法打开网页。这时候,你的上司或同事可能会急切地打来电话问:我们的网站怎么上不去了?我们今天还要xxxx呢!但这时你的SSH也无法像往常一样忠实地给你一个“login:”,因为它也连不上服务器了。这个时候你的服务器在做什么呢?你找出各种理由向他们解释之后,过上一段时间,网站能够正常访问了,你也终于SSH上了服务器(听起来系统管理员真没用),然后你会用dmesg或者在/var/log/messages里面发现一堆有关内存的信息,什么DMA了,HighMem了,其中会包含类似这样一行:
Out of Memory: Killed process 6760 (httpd).
它告诉你的信息是,你的服务器物理内存耗尽,也没什么好向交换区淘汰的了,只好杀掉了你的Apache的一个进程。之所以选择这个进程,基本上就是因为它占用的物理内存最多。
OurApache
Apache高级应用