Apache keepAlive
์๋ฒ๋ฅผ ์ด์ํ๋ค๋ณด๋ฉด ๊ฐํน ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณค ํ๋ค. ์ด๋ฅผํ
๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ค๋ฅธ์ด์ ์์ด ์ฌ๋ผ๊ฐ๋ค๊ฑฐ๋, ์ฌ์ฉ์ ์
์ฅ์์ ์๋ต์๋๊ฐ ๊ฐํ์ ์ผ๋ก ๋๋ฆฐ๋ค๊ฑฐ๋. ๊ทธ๋ด๋๋ง๋ค ์ ๋ฐฐ๊ฐ๋ฐ์๋ถ๋ค๊ป์ ๊ฐ์ฅ๋จผ์ ์
์ ์ค๋ฅด๋ด๋ฆฌ๋ ๋จ์ด. keepAlive
.
๋์ถฉ ๊ฒ์์ ํด๋ณด๋ฉด ์ ์์ ์ ์งํ๊ฑฐ๋ ๊ทธ๋ ์ง ์๊ฑฐ๋ ํ๋ ์ค์ ์ด๊ตฌ๋ ๋ง์ผ๋ก ์๊ฐํ์๋๋ฐ ์ ๋๋ก ์ง๊ณ ๋์ด๊ฐ๋ ์๋ฏธ์์ ์ ๋ฆฌ๋ฅผ ํด๋ณผ ํ์๊ฐ ์์๊ฒ ๊ฐ๋ค.
์ ์
์ฐ์ 2.4๋ฒ์ ๊ธฐ์ค ๋ํ๋จผํธ์ ๋ด์ฉ์ ๋ณผ ํ์๊ฐ ์๋ค. https://httpd.apache.org/docs/2.4/mod/core.html#keepalive
The Keep-Alive extension to HTTP/1.0 and the persistent connection feature of HTTP/1.1 provide long-lived HTTP sessions which allow multiple requests to be sent over the same TCP connection. In some cases this has been shown to result in an almost 50% speedup in latency times for HTML documents with many images. To enable Keep-Alive connections, set KeepAlive On.
๋ฐ๋ฒ์ญ(ํํ๊ณ ์ ํ!)
์ผ๋ก ์ดํดํ ๋ด์ฉ์ผ๋ก๋, keepAlive๋ฅผ ์ฌ์ฉํ๋ฉด 50%๊น์ง ๋๊ธฐ์๊ฐ์ ๋จ์ถํ ์ ์๋ค๋ ์ค์ ์ด๋ผ ๋์์๋ค. ํ์ง๋ง ๋๊ฐ์ ์์ด์ธ๋ ์ค์ด ์๋ ์ฌ๋๋ค(?)์ ์์ด ๋ฌธ์๋ง์ ๊ฐ์ง๊ณ ์๋ฒฝํ ์ดํดํ ์๋ ์๋ค. ๊ทธ๋์ ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ณด๊ณ ๋ค์ ์ ๋ฆฌ๋ฅผ ํด๋ณธ๋ค.
์ ๋ฆฌ
๊ธฐ๋ณธ์ ์ผ๋ก ์ธ๋ถ ์ฌ์ฉ์์ ์ํด ์์ฒญ(access)์ด ๋ค์ด์ค๊ฒ ๋๋ฉด mpm๋ฐฉ์์ด ์ด๋ค๊ฑฐ๋ ๊ฐ์ (์ํ์น MPM์ ๋ํด์๋ ์ ๋ฆฌ๋ฅผ ํด์ผ๊ฒ ๊ตฐ..)
์ํ์น๊ฐ ์ฒ๋ฆฌ๋ฅผ ํ๋ WAS์๊ฒ ๋๊ฒจ์ฃผ๋ ํ๋์ ํ๋ฆ์ด ๋ค์ด์ค๋๋ฐ ๋์ผํ ์ฌ์ฉ์์ ๋ํด์ ์ด ํ๋ฆ์ ๋๊ณ ๋ค์ ์์ฒญ ๋ฐ์๊ฒ์ธ๊ฐ ์๋๋ฉด ์ฐ๊ฒฐ์ ์ ์งํ๊ณ ๋ฐ๋ก ์ฒ๋ฆฌ๋ฅผ ํ ๊ฒ์ธ๊ฐ์ ๋ํ ์ค์ ๊ฐ์ผ๋ก ์ดํดํ๋ฉด ์ข์๋ฏ ์ถ๋ค. ํ์๊ฐ ํํ์ ์ ๋ชปํด์ ๊ทธ๋ฐ๊ฒ์ผ์๋ ์์ผ๋ ๊ทธ๋ฆผ์ผ๋ก ๋ณด๋๊ฒ ๊ฐ์ฅ ๋น ๋ฅผ์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.
์ ๊ทธ๋ฆผ์ IT์ ๊ณต์๋ผ๋ฉด(?) ํ๋ฒ์ฏค์ ๋ดค์ tcp 3-way handshake
์ธ๋ฐ, keepAlive ๋ฅผ on ํ๋ฉด ์ด๊ธฐ ์ฐ๊ฒฐํ๋ ๋น์ฉ์ ์กฐ๊ธ์ด๋๋ง ์ค์ผ์ ์๋ค๋๊ฑธ ๋ณด์ฌ์ค๋ค. ์ฆ, ๋ค์๋งํ๋ฉด keepAlive๋ ํ๋ฒ ์ฐ๊ฒฐ๋ ์๋์ ๋ํด์ ์ฐ๊ฒฐ์ ์์ง ์๊ณ (์ด๋ฐ์ ๋ฐ ์ค์ ๊ฐ์ ์์กด) ์ง์์ ์ผ๋ก ์์ฒญ์ ์๋ต์ ํด์ค์ ์๋ค๋ ์ต์
์ด๋ค. ๊ฐ๋จํ๊ฒ ์๊ฐํ๋ฉด ์ด ์ค์ ๊ฐ์ ์ด์ฉํ๋ฉด ๋ชจ๋ ์์ฒญ์ ์ํด์ ์ง์์ ์ผ๋ก ์๋ต์ ํด์ค์ ์์ผ๋ ๋ฌด์กฐ๊ฑด onํ๋ฉด ๋๋๊ฑฐ ์๋๊น? ํ๋ ์๊ฐ์ด ๋จผ์ ๋ ๋ค. default ๊ฐ๋ on ์ด๋. ํ๋ ์์นซ ์๋ชปํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ชจ๋ ์ ์์ ๋ง๋ค ์ฐ๊ฒฐ ์ ์ง๋ฅผ ํด ๋์์ผ ํ๊ธฐ ๋๋ฌธ์ ์ํ์น ํ๋ก์ธ์ค์๊ฐ ๊ธฐํ ๊ธ์์ ์ผ๋ก ๋์ด๋ MaxClient๊ฐ์ ์ด๊ณผํ๊ฒ ๋๋ค. ๋ํ On์ํ์ผ๋ ์ ์์ ์ง ํ๋ ํ๋ก์ธ์ค๋ค ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ทธ ๋งํผ ๋ง์ด ์ฌ์ฉํ๊ฒ ๋๋ค.
์ด ์๋ ์ ๊ฒ keepAlive
๋ ๊ณผ์ฐ ์ด๋ป๊ฒ ์ฌ์ฉํด์ผ ํ๋๊ฑธ๊น?
์ฌ์ฉ ์๊ธฐ
์ฐ์ ์์ ๋งํ๋๊ฒ๊ณผ ๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ On
์ด๋ค. ์ฆ, ์ํ์น ์ค์น์ ๊ธฐ๋ณธ์ผ๋ก ์ฐ๊ฒฐ์ ์ง๋ฅผ ํ๋๊ฒ. ํ์ง๋ง ์ํฉ์ ๋ฐ๋ผ On
ํ ์ง Off
ํ ์ง๋ฅผ ๊ฒฐ์ ํด์ผ ํ๋ค.
On
ํด์ผํ ๊ฒฝ์ฐ ์ ์์์ ์ ์๊ด์์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ ๊ฒฝ์ฐ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ๋ค : ์ ์์๊ฐ maxclient ๊ฐ์ ๋๋ฌํ์๊ฒฝ์ฐ, swap๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ํ
Off
ํด์ผํ ๊ฒฝ์ฐ- ๋์ ์ ์์์๊ฐ ๋ง์๊ฒฝ์ฐ
- ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ์ง ๋ชปํ ๊ฒฝ์ฐ
- ํ์ง๋ง ์์ ๊ฒฝ์ฐ๋ ์ง๊ทนํ
์ผ๋ฐ์ ์ธ
๊ฒฝ์ฐ๊ณ ์ด์ํ๋ ์๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ํ๋ ์ ์์์ ์๋ฅผ ํ์ธํ๋ฉด์ ์กฐ์ ์ด ํ์ํ๋ค. ๊ผญ keepAlive์ ๊ตญํ๋๋๊ฒ์ ์๋์ง๋ง ๋ชจ๋ ๊ฐ๋ฐ์๋ ์ ๋์ ์ธ ๋ต์ ์๋๊ฒ ๊ฐ๋ค.
keepAlive ๋ฅผ On
ํ ๊ฒฝ์ฐ์ ์ถ๊ฐ ์
ํ
๋ถ๋ถ
(์ฐธ๊ณ : https://abdussamad.com/archives/169-Apache-optimization:-KeepAlive-On-or-Off.html)
- MaxKeepAliveRequest [ํ์] ํ๋์ ์ง์์ ์ธ ์ฐ๊ฒฐ์์ ์๋น์ค๋ฅผ ์ ๊ณตํ ์์ฒญ์ ์ต๋ ๊ฐ์ ์ค์ ํ๋ค. 50 ๊ณผ 75 ์ฌ์ด ์ ๋๋ฉด ์ถฉ๋ถํ๋ค๊ณ ํ๋ค.
- KeepAliveTimeout [์ด] ์ฐ๊ฒฐ๋ ์ฌ์ฉ์๋ก๋ถํฐ ์๋ก์ด ์์ฒญ์ ๋ฐ๊ธฐ๊น์ง ์๋ฒ๊ฐ ์ผ๋ง๋ ๊ธฐ๋ค๋ฆด ๊ฒ์ธ๊ฐ๋ฅผ ์ค์ ํ๋ค. (default : 15์ด) ์ผ๋ฐ์ ์ผ๋ก 1~5์ด ์ ๋๋ก ์ค์ ํ๊ณค ํ๋ค.
- MaxClients [ํ์] ์์ํ๋ก์ธ์ค๋ค์ ์ต๋ ๊ฐ์ ์ค์ ํ๋ค. ์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ์ ์๊ด๊ด๊ณ๊ฐ ์๋ค.
- MaxRequestsPerChild [ํ์] ํด๋ผ์ด์ธํธ๋ค์ ์์ฒญ ๊ฐ์๋ฅผ ์ ํ. ๋ง์ฝ ์์ ํ๋ก์ธ์ค๊ฐ ์ด ๊ฐ๋งํผ์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ฐ์๋ค๋ฉด ์ด ์์ ํ๋ก์ธ์ค๋ ์๋์ผ๋ก ์ฃฝ๊ฒ ๋๋ค. 0 ์ผ ๊ฒฝ์ฐ์ ๋ฌดํ๋. ์ด ์ค์ ๊ฐ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋์๋ฅผ ๋ฐฉ์งํ ์ ์๋ค.
์ด์จ๋ , ์ ๋ต์ ์๋ค. ์ํฉ์ ๋ง์ถฐ์ ์ค์ ํ ๊ฒ! ๊ทธ์๋ฐ๋ฅธ ์ฑ ์์ ๋ณธ์ธ์ด ๊ฐ์ ธ๊ฐ์ผํ๋๊ฑธ ๋ช ์ฌ!
Buy me a coffee