Tomcat performance tuning - low-hill/Knowledge GitHub Wiki

OS

open files

๋ชจ๋“  ์ˆ˜์‹  ๋˜๋Š” ์†ก์‹  ์—ฐ๊ฒฐ์€ ์†Œ์ผ“์„ ์—ด์–ด์•ผ ํ•˜๋ฉฐ ๊ฐ ์†Œ์ผ“์€ Linux ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ์ •์  ์ฝ˜ํ…์ธ ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ ์—ฐ๊ฒฐ๋งˆ๋‹ค ์†Œ์ผ“์ด ํ•˜๋‚˜์”ฉ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์—์„œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ ์ˆ˜์‹  ์—ฐ๊ฒฐ์€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์ตœ์†Œ 2๊ฐœ ์ด์ƒ์˜ ์†Œ์ผ“์„ ์—ฝ๋‹ˆ๋‹ค.

  • open files ์ˆ˜์ • ์‹œ /etc/security/limits.conf์— ํ•˜์œ„ ๋‚ด์šฉ ์ถ”๊ฐ€
* soft nofile 100000
* hard nofile 100000
root soft nofile 100000
root hard nofile 100000

TCP parameters

  • ํ•˜์œ„ ๊ฐ’์„ /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

TCP port range

  • ํ•˜์œ„ ๊ฐ’์„ /etc/sysctl.conf or /etc/sysctl.d/.conf์— ์ถ”๊ฐ€ํ•˜๊ณ  sysctl -p๋กœ ์ ์šฉํ•œ๋‹ค. net.ipv4.ip_local_port_range=1024 65535

JVM

GC

์ตœ์ƒ์˜ ์„ฑ๋Šฅ์„ ์œ„ํ•ด G1GC(Garbage First Garbage Collector) ๋˜๋Š” Z Garbage Collector์™€ ๊ฐ™์€ ์ตœ์‹  Garbage Collector๋ฅผ ์„ ํƒ ํ•œ๋‹ค.

memory

heap ๋ฐ non-heap ์ถฉ๋ถ„ํ•œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ™•๋ณดํ•ด์•ผ ๋‹ค.

  • Xmx: ์ตœ๋Œ€ heap ํฌ๊ธฐ
  • Xms: ์ดˆ๊ธฐ heap ํฌ๊ธฐ
  • XX ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ ์ค‘์ธ JRE ๋ฒ„์ „์— ๋”ฐ๋ผ PermSize ๋˜๋Š” ๋ฉ”ํƒ€์ŠคํŽ˜์ด์ŠคSize๋ฅผ ์„ค์ •

Reference

โš ๏ธ **GitHub.com Fallback** โš ๏ธ