Skip to content

Commit

Permalink
add: ๐Ÿ“ฐ [Chapter 02] ์นดํ”„์นด ์„ค์น˜ํ•˜๊ธฐ
Browse files Browse the repository at this point in the history
  • Loading branch information
Shinminjin committed Nov 23, 2024
1 parent 7225484 commit ee76e9e
Show file tree
Hide file tree
Showing 2 changed files with 294 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Chapter 02. Kafka ์„ค์น˜ํ•˜๊ธฐ(WSL ๐Ÿง)
title: Chapter 02(1). ์นดํ”„์นด ์„ค์น˜ํ•˜๊ธฐ(WSL ๐Ÿง)
date: 2024-11-17 22:20:00 +0900
categories: [์นดํ”„์นด ํ•ต์‹ฌ๊ฐ€์ด๋“œ]
tags: [์นดํ”„์นด ํ•ต์‹ฌ๊ฐ€์ด๋“œ]
Expand Down
293 changes: 293 additions & 0 deletions _posts/kafka/2024-11-17-chapter02(2).md
Original file line number Diff line number Diff line change
@@ -0,0 +1,293 @@
---
title: Chapter 02(2). ์นดํ”„์นด ์„ค์ •ํ•˜๊ธฐ
date: 2024-11-23 19:00:00 +0900
categories: [์นดํ”„์นด ํ•ต์‹ฌ๊ฐ€์ด๋“œ]
tags: [์นดํ”„์นด ํ•ต์‹ฌ๊ฐ€์ด๋“œ]
---

## **1. ๋ธŒ๋กœ์ปค ์„ค์ •ํ•˜๊ธฐ โš™๏ธ**

### **1-1. broker.id**
- ๋ธŒ๋กœ์ปค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ณ ์œ  ์ •์ˆ˜ ๊ฐ’
- ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด `broker.id`๋Š” **์ค‘๋ณต ๋ถˆ๊ฐ€**

### **1-2. listeners**
- ๋ธŒ๋กœ์ปค๊ฐ€ ํด๋ผ์ด์–ธํŠธ์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฆฌ์Šค๋„ˆ ์„ค์ •
- **ํ”„๋กœํ† ์ฝœ, ํ˜ธ์ŠคํŠธ์ด๋ฆ„, ํฌํŠธ**๋ฅผ ์ •์˜
- `listener.security.protocol.map`์œผ๋กœ ๋ฆฌ์Šค๋„ˆ์™€ ํ”„๋กœํ† ์ฝœ ๋งคํ•‘ ํ•„์š”.
- ํ˜•์‹: `listeners={ํ”„๋กœํ† ์ฝœ}://{ํ˜ธ์ŠคํŠธ ์ด๋ฆ„}:{ํฌํŠธ}`

```
# ๋‹จ์ผ ๋ฆฌ์Šค๋„ˆ ์„ค์ •
listeners=PLAINTEXT://localhost:9092
listener.security.protocol.map=PLAINTEXT:PLAINTEXT
# ๋‹ค์ค‘ ๋ฆฌ์Šค๋„ˆ ์„ค์ • (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)
listeners=PLAINTEXT://localhost:9092,SSL://localhost:9093
listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL
# ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์—ฐ๊ฒฐ ํ—ˆ์šฉ
listeners=PLAINTEXT://0.0.0.0:9092
listener.security.protocol.map=PLAINTEXT:PLAINTEXT
```

### **1-3. zookeeper.connect**
- ๋ธŒ๋กœ์ปค์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” **์ฃผํ‚คํผ์˜ ์œ„์น˜**๋ฅผ ์ •์˜
- ํ˜•์‹: `zookeeper.connect={ํ˜ธ์ŠคํŠธ}:{ํฌํŠธ}`

```
# localhost์˜ 2181๋ฒˆ ํฌํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ธ ์ฃผํ‚คํผ ์‚ฌ์šฉ
zookeeper.connect=localhost:2181
# ์›๊ฒฉ ์ฃผํ‚คํผ ์„œ๋ฒ„ ์ง€์ •
zookeeper.connect=remote-zookeeper-host:2181
# ๋‹ค์ค‘ ์ฃผํ‚คํผ ํ™˜๊ฒฝ์—์„œ ์‰ผํ‘œ๋กœ ์—ฌ๋Ÿฌ ์„œ๋ฒ„ ์ง€์ •
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
```

### **1-4. log.dirs**
- ๋กœ๊ทธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •

```
# ๋‹จ์ผ ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •
log.dirs=/var/lib/kafka-logs
# ๋‹ค์ค‘ ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ • (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)
log.dirs=/var/lib/kafka-logs1,/var/lib/kafka-logs2
```

### **1-5. num.recovery.threads.per.data.dir**
- ๋กœ๊ทธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์Šค๋ ˆ๋“œ ์ˆ˜๋ฅผ ์„ค์ •
- ์„ค์ •๋œ ๊ฐ’์€ **๋””๋ ‰ํ† ๋ฆฌ๋‹น ์Šค๋ ˆ๋“œ ์ˆ˜**๋ฅผ ์˜๋ฏธ

```
# ๋””๋ ‰ํ† ๋ฆฌ๋‹น 4๊ฐœ์˜ ์Šค๋ ˆ๋“œ ์‚ฌ์šฉ
num.recovery.threads.per.data.dir=4
# Tip : ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ 3๊ฐœ๋ผ๋ฉด ์ด ์Šค๋ ˆ๋“œ ์ˆ˜๋Š” 4 x 3 = 12
```

### **1-6. auto.create.topics.enable**
- ๋ธŒ๋กœ์ปค๋Š” ๋‹ค์Œ ์ƒํ™ฉ์—์„œ ํ† ํ”ฝ์„ ์ž๋™ ์ƒ์„ฑ (๊ธฐ๋ณธ๊ฐ’ `true`)
- ํ”„๋กœ๋“€์„œ๊ฐ€ ํ† ํ”ฝ์— ๋ฉ”์‹œ์ง€๋ฅผ ์“ฐ๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ
- ์ปจ์Šˆ๋จธ๊ฐ€ ํ† ํ”ฝ์œผ๋กœ๋ถ€ํ„ฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ
- ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—†๋Š” ํ† ํ”ฝ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ
- ๋ช…์‹œ์ ์œผ๋กœ ํ† ํ”ฝ์„ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด `false`๋กœ ์„ค์ •

```
# ํ† ํ”ฝ ์ž๋™ ์ƒ์„ฑ ํ™œ์„ฑํ™” (๊ธฐ๋ณธ๊ฐ’)
auto.create.topics.enable=true
# ํ† ํ”ฝ ์ž๋™ ์ƒ์„ฑ ๋น„ํ™œ์„ฑํ™”
auto.create.topics.enable=false
```

### **1-7. delete.topic.enable**
- ํ† ํ”ฝ ์‚ญ์ œ ๊ฐ€๋Šฅ ์—ฌ๋ถ€๋ฅผ ์„ค์ •
- ์‚ญ์ œ ์š”์ฒญ ์‹œ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ์ œ๊ฑฐ๋จ

```
# ํ† ํ”ฝ ์‚ญ์ œ ํ—ˆ์šฉ
delete.topic.enable=true
# ํ† ํ”ฝ ์‚ญ์ œ ๊ธˆ์ง€
delete.topic.enable=false
```

---

## **2. ํ† ํ”ฝ๋ณ„ ๊ธฐ๋ณธ๊ฐ’ โš™๏ธ**

### **2-1. num.partitions**
- ์ƒˆ๋กœ์šด ํ† ํ”ฝ ์ƒ์„ฑ ์‹œ **ํŒŒํ‹ฐ์…˜ ์ˆ˜**๋ฅผ ๊ฒฐ์ •
- **๊ธฐ๋ณธ๊ฐ’:** `1`

```
# ํŒŒํ‹ฐ์…˜ ์ˆ˜ ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •
num.partitions=1
# ํŒŒํ‹ฐ์…˜ ์ˆ˜๋ฅผ 10์œผ๋กœ ์„ค์ •
num.partitions=10
```
- 10๊ฐœ์˜ ํŒŒํ‹ฐ์…˜์ด 10๊ฐœ์˜ ๋ธŒ๋กœ์ปค์— ๋ถ„์‚ฐ๋˜๋ฉด ๊ฐ ๋ธŒ๋กœ์ปค์— ํ•˜๋‚˜์˜ ํŒŒํ‹ฐ์…˜ ๋ฆฌ๋” ๋ฐฐ์น˜
- ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ์ตœ์ ํ™”๋˜๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰ ์ฆ๊ฐ€


### **2-2. default.replication.factor**
- ์ž๋™ ์ƒ์„ฑ๋œ ํ† ํ”ฝ์˜ **๋ณต์ œ ํŒฉํ„ฐ(๋ ˆํ”Œ๋ฆฌ์นด ์ˆ˜)**๋ฅผ ๊ฒฐ์ •
- **๋ณต์ œ ํŒฉํ„ฐ:** ํ† ํ”ฝ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์ œ๋˜๋Š” ๋ธŒ๋กœ์ปค์˜ ๊ฐœ์ˆ˜

```
# ๋ณต์ œ ํŒฉํ„ฐ ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •
default.replication.factor=3
```
- ๋ณต์ œ ํŒฉํ„ฐ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ธŒ๋กœ์ปค ์ˆ˜๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•จ
- **`min.insync.replicas`** ์„ค์ •๊ฐ’๋ณด๋‹ค **์ตœ์†Œ 1 ์ด์ƒ** ํฌ๊ฒŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ


### **2-3. log.retention.ms**
- ๋ฉ”์‹œ์ง€์˜ **๋ณด์กด ๊ธฐ๊ฐ„**์„ ์„ค์ •
- ๊ธฐ๋ณธ๊ฐ’: `7์ผ(604,800,000ms)`

```
# ๋ฉ”์‹œ์ง€ ๋ณด์กด ๊ธฐ๊ฐ„์„ 7์ผ๋กœ ์„ค์ • (๊ธฐ๋ณธ๊ฐ’)
log.retention.ms=604800000
# ๋ฉ”์‹œ์ง€ ๋ณด์กด ๊ธฐ๊ฐ„์„ 3์ผ๋กœ ์„ค์ •
log.retention.ms=259200000
```


### **2-4. log.retention.bytes**
- ๋ฉ”์‹œ์ง€ ๋ณด์กด ๊ธฐ์ค€์„ **๋ฉ”์‹œ์ง€ ํฌ๊ธฐ(๋ฐ”์ดํŠธ)**๋กœ ์„ค์ •
- ์„ค์ •๋œ ์šฉ๋Ÿ‰์„ ์ดˆ๊ณผํ•˜๋ฉด ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๋ฉ”์‹œ์ง€๋ถ€ํ„ฐ ์‚ญ์ œ

```
# ๋ฉ”์‹œ์ง€ ๋ณด์กด ํฌ๊ธฐ๋ฅผ 1GB๋กœ ์„ค์ •
log.retention.bytes=1073741824
# ๋ฉ”์‹œ์ง€ ๋ณด์กด ํฌ๊ธฐ๋ฅผ 500MB๋กœ ์„ค์ •
log.retention.bytes=524288000
```


### **2-5. log.segment.bytes**
- **๋กœ๊ทธ ์„ธ๊ทธ๋จผํŠธ ํฌ๊ธฐ**๋ฅผ ์„ค์ •
- ์„ค์ •๋œ ํฌ๊ธฐ์— ๋„๋‹ฌํ•˜๋ฉด ๊ธฐ์กด ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋‹ซ๊ณ , ์ƒˆ๋กœ์šด ์„ธ๊ทธ๋จผํŠธ ํŒŒ์ผ์„ ์ƒ์„ฑ

```
# ์„ธ๊ทธ๋จผํŠธ ํฌ๊ธฐ๋ฅผ 1GB๋กœ ์„ค์ •
log.segment.bytes=1073741824
```


### **2-6. log.roll.ms**
- **๋กœ๊ทธ ์„ธ๊ทธ๋จผํŠธ ํŒŒ์ผ์ด ๋‹ซํžˆ๋Š” ์‹œ๊ฐ„ ๊ธฐ์ค€**์„ ์„ค์ •

```
# ๋กœ๊ทธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ 1์‹œ๊ฐ„(3600000ms)๋งˆ๋‹ค ๋‹ซ์Œ
log.roll.ms=3600000
```

### **2-7. min.insync.replicas**
- ์ตœ์†Œ ๋™๊ธฐํ™” ๋ ˆํ”Œ๋ฆฌ์นด ์ˆ˜ ์„ค์ •
- ์„ค์ •๋œ ๊ฐ’๋งŒํผ์˜ ๋ ˆํ”Œ๋ฆฌ์นด๊ฐ€ ์ตœ์‹  ์ƒํƒœ์—ฌ์•ผ ์“ฐ๊ธฐ ์ž‘์—… ์„ฑ๊ณต


### **2-8. message.max.bytes**
- **๋ฉ”์‹œ์ง€ ํฌ๊ธฐ ์ƒํ•œ**์„ ์„ค์ •ํ•˜์—ฌ ๋ธŒ๋กœ์ปค๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ์ตœ๋Œ€ ๋ฉ”์‹œ์ง€ ํฌ๊ธฐ๋ฅผ ์ •์˜
- **๊ธฐ๋ณธ๊ฐ’:** `1MB`
- ๋ฉ”์‹œ์ง€ ํฌ๊ธฐ๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ๋ธŒ๋กœ์ปค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜
- ํ”„๋กœ๋“€์„œ(`max.request.size`)์™€ ์ปจ์Šˆ๋จธ(`fetch.message.max.bytes`) ์„ค์ • ๊ฐ’๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•จ

---

## **3. ํ•˜๋“œ์›จ์–ด ์„ ํƒํ•˜๊ธฐ (๊ธฐ์˜ˆ) ๐ŸŽช**

### **3-1. ๋””์Šคํฌ ์ฒ˜๋ฆฌ๋Ÿ‰**
- ๋ฉ”์‹œ์ง€๋ฅผ ๋””์Šคํฌ์— ๊ธฐ๋กํ•  ๋•Œ **๋””์Šคํฌ ์ฒ˜๋ฆฌ๋Ÿ‰**์ด ์“ฐ๊ธฐ ์ง€์—ฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นจ
- ๊ณ ์† ๋””์Šคํฌ ์‚ฌ์šฉ ๊ถŒ์žฅ


### **3-2 ๋””์Šคํฌ ์šฉ๋Ÿ‰**
- ๋ฉ”์‹œ์ง€ ๋ณด์กด ๊ธฐ๊ฐ„ ๋˜๋Š” ๋ณด์กด ์šฉ๋Ÿ‰์— ๋”ฐ๋ผ ๋””์Šคํฌ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•จ
- ex. ํ•˜๋ฃจ 1TB ํŠธ๋ž˜ํ”ฝ, ์ผ์ฃผ์ผ ๋ณด์กด โ†’ **7TB + 10% ์—ฌ์œ  ๊ณต๊ฐ„**


### **3-3. ๋ฉ”๋ชจ๋ฆฌ**
- **ํŽ˜์ด์ง€ ์บ์‹œ ํ™œ์šฉ:** ์นดํ”„์นด ์ปจ์Šˆ๋จธ๋Š” ์‹œ์Šคํ…œ ํŽ˜์ด์ง€ ์บ์‹œ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฝ๋Š” ๊ฒƒ์ด ํšจ์œจ์ 
- ์นดํ”„์นด์™€ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ **๊ฐ™์€ ์‹œ์Šคํ…œ์—์„œ ์šด์˜ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ**์„ ๊ถŒ์žฅ


### **3-4. ๋„คํŠธ์›Œํฌ**
- ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์ด ์นดํ”„์นด ์ฒ˜๋ฆฌ๋Ÿ‰ ์ƒํ•œ์„ ์„ ๊ฒฐ์ •ํ•จ
- ๋„คํŠธ์›Œํฌ๊ฐ€ ํฌํ™” ์ƒํƒœ๊ฐ€ ๋˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๋ณต์ œ ์ž‘์—…์— ์ง€์—ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ
- ์˜ˆ์ƒ ํŠธ๋ž˜ํ”ฝ๊ณผ ๋ณต์ œ ์ž‘์—…์„ ๊ฐ์•ˆํ•ด ์ถฉ๋ถ„ํ•œ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ ํ™•๋ณด ํ•„์š”


### **3-5. CPU**
- ์นดํ”„์นด๋Š” ๋ฉ”์‹œ์ง€ ์••์ถ•, ์ฒดํฌ์„ฌ ํ™•์ธ, ์˜คํ”„์…‹ ๋ถ€์—ฌ ๋“ฑ์— CPU๋ฅผ ์‚ฌ์šฉ
- ๋””์Šคํฌ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๋งŒํผ ์ค‘์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ ์ • ์ˆ˜์ค€์˜ ํ• ๋‹น ๊ถŒ์žฅ

---

## **4. ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •ํ•˜๊ธฐ โš™๏ธ**

### **4-1. ๋ธŒ๋กœ์ปค ๊ฐœ์ˆ˜**
- **ํด๋Ÿฌ์Šคํ„ฐ ํฌ๊ธฐ ๊ฒฐ์ • ์š”์†Œ**
- ๋””์Šคํฌ ์šฉ๋Ÿ‰ ๐Ÿ’ฟ
- ๋ธŒ๋กœ์ปค๋‹น ๋ ˆํ”Œ๋ฆฌ์นด ์šฉ๋Ÿ‰
- CPU ์šฉ๋Ÿ‰
- ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ
- **๋ธŒ๋กœ์ปค ์ˆ˜ ์„ค์ • ์˜ˆ์‹œ**
- 10TB ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด, ๋ธŒ๋กœ์ปค๋‹น ์ €์žฅ ์šฉ๋Ÿ‰์ด 2TB์ผ ๊ฒฝ์šฐ โ†’ **์ตœ์†Œ 5๊ฐœ์˜ ๋ธŒ๋กœ์ปค ํ•„์š”**
- ๋ณต์ œ ํŒฉํ„ฐ๋ฅผ `2`๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ ๋ธŒ๋กœ์ปค์— ๋ณต์ œ๋˜์–ด **10๊ฐœ์˜ ๋ธŒ๋กœ์ปค ํ•„์š”**


### **4-2. ๋ธŒ๋กœ์ปค ์„ค์ •**
- ์นดํ”„์นด ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ์ฃผ์š” ์„ค์ •
- `zookeeper.connect`: ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ฃผํ‚คํผ์˜ ์ฃผ์†Œ
- `broker.id`: ๋ธŒ๋กœ์ปค๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ์œ  ID


### **4-3. ์šด์˜์ฒด์ œ ํŠœ๋‹ํ•˜๊ธฐ**

**1. ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ**
- **ํŽ˜์ด์ง€ ์บ์‹œ ํ™œ์šฉ**: ๋””์Šคํฌ I/O ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๋”ํ‹ฐ ํŽ˜์ด์ง€ ๊ด€๋ฆฌ ํ•„์š”
- **์Šค์™‘ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์†Œํ™”**: ์Šค์™‘ ๊ณต๊ฐ„ ๋Œ€์‹  ํŽ˜์ด์ง€ ์บ์‹œ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์šฐ์„  ํ• ๋‹น


**2. ๋””์Šคํฌ**
- **ํŒŒ์ผ ์‹œ์Šคํ…œ ์ถ”์ฒœ**
- **Ext4** ๋˜๋Š” **XFS** ์‚ฌ์šฉ
- **XFS**๋Š” ์ถ”๊ฐ€ ํŠœ๋‹ ์—†์ด๋„ ์นดํ”„์นด ์›Œํฌ๋กœ๋“œ์— ์ ํ•ฉ


**3. ๋„คํŠธ์›Œํ‚น**
- ์†ก์‹  ๋ฐ ์ˆ˜์‹  ๋ฒ„ํผ ํฌ๊ธฐ ์„ค์ •

```
net.core.wmem_default=262144
net.core.rmem_default=262144
net.core.wmem_max=16777216
net.core.rmem_max=16777216
```

- ๋ธŒ๋กœ์ปค ๋™์‹œ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •

```
net.ipv4.tcp_max_syn_backlog=128
```

---

## **5. ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ์˜ ๊ณ ๋ ค ์‚ฌํ•ญ ๐Ÿค”**

### **5.1 GC(๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํ„ฐ) ์„ค์ •**
- ์นดํ”„์นด๋Š” **G1GC**๋ฅผ ๊ธฐ๋ณธ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ
- G1GC๋Š” ๋‹ค์–‘ํ•œ ์ž‘์—… ๋ถ€ํ•˜๋ฅผ ์กฐ์ ˆํ•˜๊ณ  ์ผ์ •ํ•œ **GC ์ •์ง€ ์‹œ๊ฐ„**์„ ์œ ์ง€
- **์ฃผ์š” ์˜ต์…˜**
- **`MaxGCPauseMillis`**
- GC์˜ ์ตœ๋Œ€ ์ •์ง€ ์‹œ๊ฐ„ ์„ค์ •
- ์งง๊ฒŒ ์„ค์ •ํ•˜๋ฉด ์‘๋‹ต์„ฑ์ด ํ–ฅ์ƒ๋˜์ง€๋งŒ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์Œ
- **`InitiatingHeapOccupancyPercent`**
- GC๊ฐ€ ์‹œ์ž‘๋˜๋Š” ํž™ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ ๋น„์œจ ์„ค์ •
- ex. `45`๋กœ ์„ค์ • ์‹œ ํž™์˜ 45%๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด GC ์‹œ์ž‘
- **๊ถŒ์žฅ ์‚ฌํ•ญ**
- ์นดํ”„์นด๋Š” ํž™ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ GC ๋Œ€์ƒ ๊ฐ์ฒด๋ฅผ ์ ๊ฒŒ ์ƒ์„ฑ
- ์œ„ ์„ค์ •๊ฐ’์„ ๋‚ฎ๊ฒŒ ์žก์•„๋„ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ ์—†์Œ


### **5.2 ๋ฐ์ดํ„ฐ์„ผํ„ฐ ๋ ˆ์ด์•„์›ƒ**
- ๋ธŒ๋กœ์ปค ๊ฐ„ **๋ž™ ์œ„์น˜**๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๋ฐ์ดํ„ฐ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅ
- ๋™์ผ ๋ž™์— ๋ ˆํ”Œ๋ฆฌ์นด๊ฐ€ ๋ฐฐ์น˜๋˜์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑ
- **์„ค๊ณ„ ๊ฐ€์ด๋“œ**
- ๊ฐ ๋ธŒ๋กœ์ปค๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ๋ž™ ๋˜๋Š” ๋ฐ์ดํ„ฐ์„ผํ„ฐ์— ๋ฐฐ์น˜
- ๋‹จ์ผ ์žฅ์• ์ (์ „์›, ๋„คํŠธ์›Œํฌ ๋“ฑ)์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑ


### **5.3 ์ฃผํ‚คํผ ๊ณต์œ ํ•˜๊ธฐ**
- ์นดํ”„์นด๋Š” **์ฃผํ‚คํผ**๋ฅผ ์‚ฌ์šฉํ•ด ๋ธŒ๋กœ์ปค, ํ† ํ”ฝ, ํŒŒํ‹ฐ์…˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
- **์ฃผํ‚คํผ ์ž‘๋™ ๋ฐฉ์‹**
- ์ปจ์Šˆ๋จธ ๊ทธ๋ฃน ๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ๋ณ€๊ฒฝ ์‹œ์—๋งŒ ์“ฐ๊ธฐ ์ž‘์—… ๋ฐœ์ƒ

0 comments on commit ee76e9e

Please sign in to comment.