๐ปLinux ์ Max User Processes, Open Files
Linux ํ๊ฒฝ์์ Java Application ์ ์ด์ํ๋ค๋ณด๋ฉด ํ๋ฒ์ฏค์ ๊ฒช๋ ์๋ฌ์ค ํ๋๊ฐ 'OutOfMemoryError' ์ 'Too many open files Error' ๊ฐ ์๋๊น ์ถ์ต๋๋ค. 'OutOfMemoryError' ์ ๊ฒฝ์ฐ Java Heap Size ํน์ ์ฅ๋น์ Memory ๊ฐ ๋ถ์กฑํด์ ๋ฐ์ํ ์๋ ์์ง๋ง Thread ์๊ฐ Linux ์์ ์ ํํ๋ Max User Processes ์๊ฐ ์ด๊ณผํ์๋๋ ๋ฐ์ํ ์ ์์ต๋๋ค. ๋จ์ํ ์ด๋ฆ๋ง ๋ค์ด๋ณด๋ฉด ํ๋ก์ธ์ค ์๋ฅผ ์ ํํ๋ค๊ณ ์คํดํ ์ ์์ง๋ง, Linux ๋ Java ์ Thread ์ Process ๋ฅผ ๋์ผํ๊ฒ ์นด์ดํธํ๊ธฐ ๋๋ฌธ์ Thread ์๋ Max User Processes ์์ ์ ํ์ ๋ฐ์ต๋๋ค. ๋ง์ฝ Thread ๋ฅผ ๋๋ํ๊ฒ ์์ฑํด์ผํ๋ ์๋น์ค๋ผ๋ฉด Linux ์ Max User Processes ์๋ฅผ ์ํฉ์ ๋ง๊ฒ ๋๋ฆฌ์ ์ผ ํฉ๋๋ค. 'Too many open files Error' ๋ Linux ์์ ์ ํํ๋ FD(File Descriptor)์๋ฅผ ์ด๊ณผํ๋ ํ์๋ฅผ ํ์ ๋ ๋ฐ์ํ ์ ์๋ ์๋ฌ์ ๋๋ค. ๊ฐ๋จํ๊ฒ๋ FileSystem ์์ ํน์ File ์ Open ํ์๋๋ ์๊ฐ ์ฆ๊ฐํ ์ ์๊ณ , Http ํต์ ๊ณผ ๊ฐ์ด ์์ผ ํต์ ์ ํ ๋๋ ์นด์ดํธ ์๊ฐ ์ฆ๊ฐํ ์ ์์ต๋๋ค. ๋๋ฌธ์ FD ์๋ฅผ ๋ง์ด ์ฆ๊ฐ์ํฌ ์ ์๋ ์๋ฃจ์ ์ด๋ ์๋น์ค์ผ ๊ฒฝ์ฐ Linux ์์ ์ ํํ๋ Open File Count ์๋ฅผ ๋๋ํ๊ฒ ๋๋ฆฌ์ ์ผ ํฉ๋๋ค. ํ๊ฐ์ง ์ฌ๋ฐ๋ ์ ์ JDK ์ MaxFDLimit ๋ผ๋ ์ต์ ์ด ์๋๋ฐ, ํด๋น ์ต์ ์ True ๋ก ์ค์ ํ๋ฉด FD ์ ํ์ ulimit ๋ก ์กฐํ๋๋ Hard ํ๋(linux ์์ ์ ํํ๋ ์ต๋์น)๊น์ง JDK ๊ฐ ์๋์ผ๋ก ์ฆ๊ฐ์์ผ ์ค๋๋ค. ๊ณต์ ๋๋ฆฐ ๋ธ๋ก๊ทธ๋ ๊ฝค ์ค๋์ ์ ์์ฑ๋ ๊ธ์ด์ง๋ง ์ํ ์ฝ๋์ ๊ฐ Error ๋ฅผ ๊ฒ์ฆํ๊ธฐ ์ํ ๊ณผ์ ์ด ์์ธํ ๊ธฐ์ ๋์ด์์ผ๋ ๊ด์ฌ์์ผ์ ๋ถ๋ค๊ป์๋ ํ๋ฒ ๋ณด์๋ฉด ์ข๊ฒ ์ต๋๋ค.