# Meta space

๋ชฉ์ฐจ

JVM์˜ ์—ฌ๋Ÿฌ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์ค‘์— PermGen ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด ์—†์–ด์ง€๊ณ  Metaspace ์˜์—ญ์ด ์ƒ๊ฒผ๋‹ค.

# 1. PermGen

  • ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

    memory

๐Ÿ”ผ์ถœ์ฒ˜ (opens new window)

  • permanent generation**, ํด๋ž˜์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ**๋ฅผ ๋‹ด๋Š” ๊ณณ.
  • Heap ์˜์—ญ์— ์†ํ•จ.
  • ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ œํ•œ๋œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ.
    • ๋™์ ์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ PermGen ์˜์—ญ์ด ๊ฐ€๋“ ์ฐจ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์—๋Ÿฌ ๋ฐœ์ƒ.
    • ์œ„์˜ ๋ฌธ์ œ๋ฅผ ๊ทผ๋ณธ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด PermGen ์‚ฌ์ด์ฆˆ๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด์•„๋‹ˆ๋ผ ํด๋ž˜์Šค๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•œ๋‹ค.
  • XX:PermSize=N, PermGen ์ดˆ๊ธฐ ์‚ฌ์ด์ฆˆ ์„ค์ •
  • XX:MaxPermSize=N, PermGen ์ตœ๋Œ€ ์‚ฌ์ด์ฆˆ ์„ค์ •

# 2. Metaspace

  • ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ

    memory2

๐Ÿ”ผ์ถœ์ฒ˜ (opens new window)

  • ํด๋ž˜์Šค ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๊ณณ.
  • Heap ์˜์—ญ์ด ์•„๋‹ˆ๋ผ, Native ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด๋‹ค.
  • ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ œํ•œ๋œ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค.
    • Native ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด ๊ฐ€๋“์ฐฐ ๋•Œ๊นŒ์ง€ ํ•„์š”ํ•œ ๋งŒํผ ๊ณ„์† ๋Š˜์–ด๋‚œ๋‹ค.
    • Native ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ด ๊ฐ€๋“์ฐจ๊ฒŒ ๋˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฃฝ๋Š” ์น˜๋ช…์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ์ตœ์†Œํ•œ Metaspace์˜ ์ตœ๋Œ€ ์‚ฌ์ด์ฆˆ๋Š” ์„ค์ •ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.
    • ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜์—ฌ ์ตœ์ ์˜ Metaspace ๊ฐ’์„ ์ฐพ์•„ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ ๋ชจ๋‹ˆํ„ฐ๋ง์œผ๋กœ ๋„์ถœํ•ด๋‚ธ ์ด ๊ฐ’์— ๋ฉ”๋ชจ๋ฆฌ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์–ด๋”˜๊ฐ€์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์˜์‹ฌํ•ด๋ณด์•„์•ผ ํ•œ๋‹ค.
  • ์ž๋ฐ” 8๋ถ€ํ„ฐ๋Š” PermGen ๊ด€๋ จ java ์˜ต์…˜์€ ๋ฌด์‹œํ•œ๋‹ค.
  • XX:MetaspaceSize=N, Metaspace ์ดˆ๊ธฐ ์‚ฌ์ด์ฆˆ ์„ค์ •.
  • XX:MaxMetaspaceSize=N, Metaspace ์ตœ๋Œ€ ์‚ฌ์ด์ฆˆ ์„ค์ •.

memory-management

Ref.

Last Updated: 6/18/2023, 2:13:15 PM