์ปจํ๋ฃจ์ธํธ ์ฌ๋์์
์ผ๋ฐ์ ์ผ๋ก ์ด๋ ค ์๋ ํ์ผ์ ์๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ์ปค๋ ๋งค๊ฐ๋ณ์(fs.file-nr)์ /etc/security/limits.conf๋ ์์ ํด์ผ ํฉ๋๋ค. systemd์๋ ๋ ๋ค๋ฅธ ๋จ๊ณ๊ฐ ์์ต๋๋ค. ๋ฐ๋ชฌ์ด ์ ulimit ๋งค๊ฐ๋ณ์๋ฅผ ์ ํํ๋๋ก *.service ํ์ผ๋ ์์ ํด์ผ ํฉ๋๋ค. ์ด ๊ฒ์๋ฌผ์ ์ ์ฉ๋๋ ์ง์๋ฌธ์ ๋ณด์ฌ์ค๋๋ค. ์ ๋ฌ๋
/lib/systemd/system/confluent-\*.service
ํ์ผ์ LimitNOFILE์ ์ถ๊ฐํ๋ฉด/proc/<pid>/limits
์์ ์ด๋ฆฐ ํ์ผ ์ ํ์ ์ธ์ํ๋ Java ๋ฐ๋ชฌ์ด ํ์๋ฉ๋๋ค. ์ ๋ฌ๋ ํ์ผ์ ์ด์ ๋ชจ๋ ์ ๊ทธ๋ ์ด๋์์ ๊ด๋ฆฌํด์ผ ํ๋ฏ๋ก ์ ๋ฌ๋ ์์คํ ํ์ผ์ ๋ํ ๋ฌธ์ ๋ฉ๋ชจ ๋๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ด์ผ ํฉ๋๋ค.
https://confluentcommunity.slack.com/archives/C49R61XMM/p1537208485000100
์ฐธ์กฐ - https://unix.stackexchange.com/questions/345595/how-to-set-ulimits-on-service-with-systemd
์ด์์ ์ผ๋ก๋ LimitNOFile ๋ฑ์ ๋ํ ์ถฉ๋ถํ ๊ธฐ๋ณธ๊ฐ์ด ์์ด ์ด์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ง๋ง ์์คํ ์๋น์ค์์ ์์ฑ์ ์ฌ์ ์ํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. ๋ธ๋ก์ปค์ ๊ฐ์ ๋ชจ๋ ์๋น์ค์ ํ ํ๋ฆฟ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ด์ผ ํฉ๋๋ค.
ํ๋ ์ด๋ถ _ https://github.com/confluentinc/cp-ansible/blob/5.1.x/roles/confluent.kafka-broker/defaults/main.yml#L14_ ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋๋ฆฌ๊ฑฐ๋ ์ค์ผ ์ ์์ต๋๋ค. , ์๋ฅผ ๋ค์ด
environment:
KAFKA_HEAP_OPTS: "-Xmx24g"
LimitNOFILE: 102400
๊ทธ๋ฌ๋ ์์คํ ํ์ผ์ ์ ์ ํ๊ฒ ํ ํ๋ฆฟํํ์ง ์์ต๋๋ค.
[Service]
Environment=LimitNOFILE=102400
์ ๋ค๋ฅด๋ค
[Service]
LimitNOFILE=102400
์ฌ๋ฐ๋ฅธ ๊ตฌํ์ด ์ฌ๊ธฐ ์์ผ๋ฉฐ ๊ฒํ ๋๊ธฐ ์ค์
๋๋ค.
https://github.com/confluentinc/cp-ansible/pull/107
ํ๋ฅญํฉ๋๋ค. ์ด ๊ตฌ์ฑ ๋ฌธ์ ๋ฅผ ๋๋ฌด ์ค๋ซ๋์ ํด๊ฒฐํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ๋ฆด๋ฆฌ์ค๊ฐ ๊ณง ์ถ์๋๋ค๋ ๋น ๋ฅธ ์ ๋ฐ์ดํธ์ ๋๋ค.
์ด๋ฆฐ ํ์ผ ์๋ฅผ ์ฒ๋ฆฌํ๋ ๋ค์ PR์ ๋ณํฉํ์ต๋๋ค.