| 44 | |
| 45 | * 另外我也做了兩個小調校: |
| 46 | * <1> 限制每個 process 的記憶體使用 - 在 /etc/profile 中加入 |
| 47 | {{{ |
| 48 | ulimit -v 524288 |
| 49 | }}} |
| 50 | * 其結果是最高可以使用的記憶體是 524288 = 512 * 1024 kbytes = 512 MB。 |
| 51 | {{{ |
| 52 | virtual memory (kbytes, -v) 524288 |
| 53 | }}} |
| 54 | * <2> 把 /etc/apache2/apache2.conf 改成只使用 prefork 模組,並且降低 KeepAlive 的時間,還有降低預設開啟的 apache process 數量。 |
| 55 | {{{ |
| 56 | #!diff |
| 57 | --- /etc/apache2/apache2.conf.org 2011-04-12 10:32:53.000000000 +0800 |
| 58 | +++ /etc/apache2/apache2.conf 2011-04-14 00:38:39.000000000 +0800 |
| 59 | @@ -64,7 +64,7 @@ |
| 60 | # |
| 61 | # Timeout: The number of seconds before receives and sends time out. |
| 62 | # |
| 63 | -Timeout 300 |
| 64 | +Timeout 30 |
| 65 | |
| 66 | # |
| 67 | # KeepAlive: Whether or not to allow persistent connections (more than |
| 68 | @@ -83,7 +83,7 @@ |
| 69 | # KeepAliveTimeout: Number of seconds to wait for the next request from the |
| 70 | # same client on the same connection. |
| 71 | # |
| 72 | -KeepAliveTimeout 15 |
| 73 | +KeepAliveTimeout 2 |
| 74 | |
| 75 | ## |
| 76 | ## Server-Pool Size Regulation (MPM specific) |
| 77 | @@ -96,11 +96,11 @@ |
| 78 | # MaxClients: maximum number of server processes allowed to start |
| 79 | # MaxRequestsPerChild: maximum number of requests a server process serves |
| 80 | <IfModule mpm_prefork_module> |
| 81 | - StartServers 5 |
| 82 | - MinSpareServers 5 |
| 83 | - MaxSpareServers 10 |
| 84 | - MaxClients 150 |
| 85 | - MaxRequestsPerChild 0 |
| 86 | + StartServers 1 |
| 87 | + MinSpareServers 1 |
| 88 | + MaxSpareServers 1 |
| 89 | + MaxClients 5 |
| 90 | + MaxRequestsPerChild 100 |
| 91 | </IfModule> |
| 92 | |
| 93 | # worker MPM |
| 94 | @@ -113,15 +113,15 @@ |
| 95 | # and starting Apache. |
| 96 | # ThreadsPerChild: constant number of worker threads in each server process |
| 97 | # MaxRequestsPerChild: maximum number of requests a server process serves |
| 98 | -<IfModule mpm_worker_module> |
| 99 | - StartServers 2 |
| 100 | - MinSpareThreads 25 |
| 101 | - MaxSpareThreads 75 |
| 102 | - ThreadLimit 64 |
| 103 | - ThreadsPerChild 25 |
| 104 | - MaxClients 150 |
| 105 | - MaxRequestsPerChild 0 |
| 106 | -</IfModule> |
| 107 | +#<IfModule mpm_worker_module> |
| 108 | +# StartServers 1 |
| 109 | +# MinSpareThreads 1 |
| 110 | +# MaxSpareThreads 1 |
| 111 | +# ThreadLimit 1 |
| 112 | +# ThreadsPerChild 1 |
| 113 | +# MaxClients 5 |
| 114 | +# MaxRequestsPerChild 50 |
| 115 | +#</IfModule> |
| 116 | |
| 117 | # event MPM |
| 118 | # StartServers: initial number of server processes to start |
| 119 | @@ -130,15 +130,15 @@ |
| 120 | # MaxSpareThreads: maximum number of worker threads which are kept spare |
| 121 | # ThreadsPerChild: constant number of worker threads in each server process |
| 122 | # MaxRequestsPerChild: maximum number of requests a server process serves |
| 123 | -<IfModule mpm_event_module> |
| 124 | - StartServers 2 |
| 125 | - MaxClients 150 |
| 126 | - MinSpareThreads 25 |
| 127 | - MaxSpareThreads 75 |
| 128 | - ThreadLimit 64 |
| 129 | - ThreadsPerChild 25 |
| 130 | - MaxRequestsPerChild 0 |
| 131 | -</IfModule> |
| 132 | +#<IfModule mpm_event_module> |
| 133 | +# StartServers 1 |
| 134 | +# MinSpareThreads 1 |
| 135 | +# MaxSpareThreads 1 |
| 136 | +# ThreadLimit 1 |
| 137 | +# ThreadsPerChild 1 |
| 138 | +# MaxClients 5 |
| 139 | +# MaxRequestsPerChild 50 |
| 140 | +#</IfModule> |
| 141 | |
| 142 | # These need to be set in /etc/apache2/envvars |
| 143 | User ${APACHE_RUN_USER} |
| 144 | }}} |