Tomcat performance tuning - low-hill/Knowledge GitHub Wiki
๋ชจ๋ ์์ ๋๋ ์ก์ ์ฐ๊ฒฐ์ ์์ผ์ ์ด์ด์ผ ํ๋ฉฐ ๊ฐ ์์ผ์ Linux ์์คํ ์ ํ์ผ์ ๋๋ค. ๋ก์ปฌ ํ์ผ ์์คํ ์์ ์ ์ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๋ ์น ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ๊ฐ ์ฐ๊ฒฐ๋ง๋ค ์์ผ์ด ํ๋์ฉ ์ด๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฑ์๋ ์๋ฒ์์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒฝ์ฐ ๊ฐ ์์ ์ฐ๊ฒฐ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ตฌ์ฑ์ ๋ฐ๋ผ ์ต์ 2๊ฐ ์ด์์ ์์ผ์ ์ฝ๋๋ค.
- open files ์์ ์ /etc/security/limits.conf์ ํ์ ๋ด์ฉ ์ถ๊ฐ
* soft nofile 100000
* hard nofile 100000
root soft nofile 100000
root hard nofile 100000
- ํ์ ๊ฐ์ /etc/sysctl.conf ๋๋ /etc/sysctl.d/<config_name>.conf์ ์ถ๊ฐํ๊ณ sysctl -p๋ฅผ ์คํํ์ฌ ์ ์ฉํ๋ค.
net.ipv4.tcp_max_syn_backlog = 100000
net.core.somaxconn = 100000
net.core.netdev_max_backlog = 100000
ํ๋ผ๋ฏธํฐ | ์ค๋ช |
---|---|
net.ipv4.tcp_max_syn_backlog | ํด๋ผ์ด์ธํธ๊ฐ ์์ง ACK ์๋ต์ ๋ณด๋ด์ง ์์ half-open(SYNC_RECV์ํ) connection์ด queue์ ์๋ ๊ฐฏ์, ๋๊ธฐ์ด์ด ๊ฐ๋ ์ฐจ๋ฉด ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๋์ ํฌํธ๊ฐ ๋ซํ ๊ฒ์ฒ๋ผ ์ฐ๊ฒฐ ๊ฑฐ๋ถ ์ค๋ฅ๊ฐ ๋ฐ์ |
net.core.somaxconn | accept๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ESTABLISHED ์ํ์ ์์ผ์ ์ํ queue |
net.core.netdev_max_backlog | ๋คํธ์ํฌ ์ฅ์น๋ณ๋ก ์ปค๋์ด ์ฒ๋ฆฌํ๋๋ก ์์๋๋ queue |
- ํ์ ๊ฐ์ /etc/sysctl.conf or /etc/sysctl.d/.conf์ ์ถ๊ฐํ๊ณ sysctl -p๋ก ์ ์ฉํ๋ค.
net.ipv4.ip_local_port_range=1024 65535
์ต์์ ์ฑ๋ฅ์ ์ํด G1GC(Garbage First Garbage Collector) ๋๋ Z Garbage Collector์ ๊ฐ์ ์ต์ Garbage Collector๋ฅผ ์ ํ ํ๋ค.
heap ๋ฐ non-heap ์ถฉ๋ถํ ์ฌ์ฉ ๊ฐ๋ฅ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํด์ผ ๋ค.
- Xmx: ์ต๋ heap ํฌ๊ธฐ
- Xms: ์ด๊ธฐ heap ํฌ๊ธฐ
- XX ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ ์ค์ธ JRE ๋ฒ์ ์ ๋ฐ๋ผ PermSize ๋๋ ๋ฉํ์คํ์ด์คSize๋ฅผ ์ค์
Reference