1. apachectl锻戒护濡备綍妫镆ュ拰绠$悊Apache链嶅姟鍣ㄨ繘绋嬶纻
Apache链嶅姟鍣ㄧ殑绠$悊鍒╁櫒钬斺apachectl锻戒护锛屾槸涓涓鐢ㄤ簬镎嶆带Web链嶅姟鍣ㄨ繘绋嬬殑寮哄ぇ宸ュ叿锛屽畠鎻愪緵浜嗗惎锷ㄣ佸叧闂銆侀吨钖浠ュ强妫镆ラ厤缃绛夊姛鑳姐傝繖涓锻戒护镄勪娇鐢ㄦ柟寮忕亩鍗曪纴阃氲繃杈揿叆鐗瑰畾镄勫弬鏁帮纴鎴戜滑鍙浠ュ规湇锷″櫒鐘舵佽繘琛岀簿缁嗗寲绠$悊銆
瑕佽繍鐢ㄨ繖涓锻戒护锛岄栧厛闇瑕佷简瑙e叾锘烘湰璇娉曟牸寮忥细?apachectl [鍙傛暟]锛屽弬鏁扮殑阃夋嫨镙规嵁浣犵殑镎崭綔闇姹伞傛瘆濡傦纴濡傛灉浣犳兂楠岃瘉閰岖疆鏂囦欢镄勮娉曟槸钖︽g‘锛屽彲浠ヤ娇鐢╟onfigtest鍙傛暟锛岃繍琛屽懡浠ゅ悗濡傝緭鍑篠yntax OK锛屽垯琛ㄧず镞犺銆
鍦ㄨ幏鍙栨湇锷″櫒鐘舵佷俊鎭镞讹纴status鍙傛暟娲句笂鐢ㄥ満锛屽畠浼氭樉绀烘湇锷″櫒镄勭亩瑕佺姸镐併傝嫢闇瑕佹煡鐪嬫洿璇︾粏镄勮繍琛岀姸镐侊纴fullstatus鍒欐槸浣犵殑阃夋嫨銆傚綋闇瑕佽繘琛屽钩绋崇殑链嶅姟鍣ㄦ洿鏂版椂锛屽彲浠ュ熷姪graceful鍙傛暟锛屽畠鍦ㄩ吨钖镞朵细淇濈暀鐜版湁镄勮繛鎺ワ纴阆垮厤鐢ㄦ埛杩炴帴涓鏂銆
姝ゅ栵纴restart鍙傛暟鐢ㄤ簬閲嶅惎鏁翠釜Apache链嶅姟鍣锛岃宻tart鍒欐槸钖锷ㄦ湇锷″櫒锛屽傛灉闇瑕佸惎锷ㄥ甫SSL鏀鎸佺殑链嶅姟鍣锛屽彲浠ヤ娇鐢╯tartssl銆傞氲繃杩欎簺鍙傛暟锛屼綘鍙浠ユ牴鎹瀹为檯𨱍呭喌𨱔垫椿鍦版带鍒禔pache链嶅姟鍣ㄧ殑杩愯屻
瀹炰緥婕旂ず濡备笅锛氭镆ラ厤缃鏂囦欢璇娉曪纴杈揿叆apachectl configtest锛屽傛灉杩斿洖Syntax OK锛岃存槑璇娉曟棤璇锛涙煡鐪嬫湇锷″櫒鐘舵侊纴杩愯宎pachectl status锛涢吨钖链嶅姟鍣ㄥ垯浣跨敤apachectl restart銆傞氲繃杩欎簺锻戒护锛屼綘鍙浠ョ洿瑙傚湴绠$悊Apache链嶅姟鍣锛岀‘淇濆叾绋冲畾杩愯屻
2. 濡备綍鐪嬫湇锷″櫒镄勭被鍨嬫槸Apache銆両IS銆丯ginx.锛熶笉鐭ラ亾璇ユ庝箞鐪媬锛
Apache銆両IS 杩欐槸涓ゆ湇锷″櫒杞浠 锛屾湇锷″櫒绫诲瀷鍙浠ラ氲繃ping 链嶅姟iP 杩斿洖镄凾TL𨱒ュ垽鏂
3. 如何测试Apache服务器
Apache是运行在Linux操作系统上的头号Web服务器。很多小地方都可以用来调整Apache的性能,并降低它对系统资源的影响。其中一
个就是调整内存使用率,当然达到这一目的可能还是需要花点功夫的。在本文里,我们假设每个httpd进程都在使用了27
MB内存。然后,你需要确定可以让httpd真正使用的内存数。根据运行在机器上的其他进程,你可能希望要求50%的物理内存都供Apache使用。在一
个装有1GB内存的系统上,就有512MB的内存可以被划分为多个27MB的内存,也就是大约19个并发的httpd内存。有些人坚持认为每个httpd
线程“真正”使用大约5MB的内存,所以从理论上讲你可以把512MB的内存划分出102个并发进程供Apache使用(要记住的是,除非你的网站需要极
其巨大的流量,否则这种情况是非常罕见的)。
Apache是运行在Linux操作系统上的头号Web服务器。很多小地方都可以用来调整Apache的性能,并降低它对系统资源的影响。其中一个就是调整内存使用率,当然达到这一目的可能还是需要花点功夫的。
例如,通过ps来确定httpd线程的内存使用率,可以输入下面的命令:
# ps -U apache -u apache u
USERPID %CPU %MEMVSZRSS TTYSTAT START TIME COMMAND
apache130670.05.3 149704 54504 ?SOct071:53 /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf -DAPACHE2
...
上面这段输出显示了单个httpd进程使用了50 MB的RSS(驻留集大小)内存(或者非交换物理内存),以及149
MB的VSZ(虚拟)内存。这当然在很大程度上取决于你在Apache里加载和运行的模块数量。这决不是一个固定的数字。由于这个数字里还包含了共享库
包,所以不是100%的准确。我们可以认为RSS数字的一半是httpd线程真正使用的内存数,这可能还有点保守,但是离我们的目的已经非常接近了。
在本文里,我们假设每个httpd进程都在使用了27
MB内存。然后,你需要确定可以让httpd真正使用的内存数。根据运行在机器上的其他进程,你可能希望要求50%的物理内存都供Apache使用。在一
个装有1GB内存的系统上,就有512MB的内存可以被划分为多个27MB的内存,也就是大约19个并发的httpd内存。有些人坚持认为每个httpd
线程“真正”使用大约5MB的内存,所以从理论上讲你可以把512MB的内存划分出102个并发进程供Apache使用(要记住的是,除非你的网站需要极
其巨大的流量,否则这种情况是非常罕见的)。
在默认状态下,Apache会分配最大256个并发客户端连接,或者256个进程(每一个都对应一个请求)。按照这种设置,一个流量巨大的网
站会在顷刻间崩溃(即使你假设每个进程占用5MB内存,那也需要1.3GB的内存来满足请求的数量)。如果不采取其它措施,系统会通过硬盘来尝试使用交换
空间以处理它无法在物理内存中完成的任务。
其他可以调整的项目包括KeepAlive、KeepAliveTimeout和MaxKeepAliveRequests等设置。可以放在httpd.conf文件里的推荐设置有:
ServerLimit 128MaxClients 128KeepAlive OnKeepAliveTimeout 2MaxKeepAliveRequests 100
通过将KeepAliveTimeout从15秒减到2秒,可以增加MaxClients命令;19太小,而128要好得多。通过减少进程存活的秒数,你可以在相同的时间内允许更多的连接。
当然,如果没有真正的测试在背后支持,数字就是毫无意义的,这就是ab的作用之所在。使用ab对Apache配置文件(MaxClients
等于
256、ServerLimit等于256、KeepAliveTimeout等于15)进行调整,使其能够满足1000个请求(100个连续请求并发产
生)的调整方法如下。(在执行测试的时候要确保服务器上有一个终端打开以观察系统的负载。)
$ ab -n 1000 -c 100 -k http://yoursite.com/index.php
现在把上面的服务器设置改为更加保守的设置,重新启动Apache,试着再次测试(总是从远程计算机上进行,而不是本机)。
在这里的测试中,不同的设置导致执行所消耗的时间产生了一倍的差距(分别为27.8s和16.8s),但是负载的平均值为0.03和
0.30。这可能会使得你的网站变得稍慢,但是会确保它不会在高负载的情况下崩溃。还要记住的是,你将需要进行多次测试,以便取得一个平均值。
使用ab是测试调整Apache配置的一个极佳方法,应该在你每次做出影响性能的更改时使用它。
4. 如何查看apache服务器是否启动
ps aux |grep httpd
netstat -an |grep :80