Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
joohanhong
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
JooHan Hong
joohanhong
Commits
33d1259e
Commit
33d1259e
authored
Jun 07, 2022
by
JooHan Hong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
numa issued init
parent
b615a9fd
Pipeline
#5727
passed with stages
in 1 minute and 6 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
132 additions
and
0 deletions
+132
-0
README.md
OS/TUNING/INFLUXDB/NUMA/ISSUED/README.md
+132
-0
No files found.
OS/TUNING/INFLUXDB/NUMA/ISSUED/README.md
0 → 100644
View file @
33d1259e
[
![logo
](
https://www.hongsnet.net/images/logo.gif
)
](https://www.hongsnet.net)
# NUMA Configuration STEP 1 (`Issued`)
현재 다음과 같이 특정 Node로의
**hit**
및 반대 노드의
**miss 상승**
이 같이 관찰되고 있는 상태 이다.
```
bash
# numastat
node0 node1
numa_hit 1415818052 4129837140
numa_miss 300383808 433699
numa_foreign 433699 300383808
interleave_hit 33473 32804
local_node 1415817519 4129800022
other_node 300384341 470817
```
또한 Application(InfluxDB)의 메모리 점유 상태도 위의 numastat 결과와 동일하다.
```
bash
# numastat -p influxdb
Per-node process memory usage
(
in
MBs
)
for
PID 4009
(
influxd
)
Node 0 Node 1 Total
---------------
---------------
---------------
Huge 0.00 0.00 0.00
Heap 0.00 0.00 0.00
Stack 0.00 0.01 0.02
Private 19536.82 37865.47 57402.29
----------------
---------------
---------------
---------------
Total 19536.82 37865.48 57402.30
```
> Node 1에서 더 많은 메모리가 할당된 것을 확인할 수 있다. 다만, `Total 사용량이 1 개의 Node의 전체 용량(64GB)를 사용하지 않고 있다`.
# 튜닝 수행 방향
*
특정 Node에 더 많은 Hit가 관찰되고 있으므로, 이를
**해당 Node가 모두 충분히 사용할 수 있도록 진행**
한다.
*
**preferred=1 옵션**
을 numactl 명령을 통해 해당 프로세스를 실행한다.
*
preferred 옵션을 사용할 경우
**해당 노드에서 모든 메모리를 할당하게되면, 다른 노드에서 메모리를 할당하게 된다**
.
즉, 다음과 같이 확인할 수 있다.
```
bash
# numastat -m
Per-node system memory usage
(
in
MBs
)
:
Node 0 Node 1 Total
---------------
---------------
---------------
MemTotal 63916.73 64484.96 128401.69
MemFree 33904.61 5847.62 39752.23 <
=
Free
MemUsed 30012.12 58637.34 88649.46 <
=
Used
Active 5848.20 5308.77 11156.98
Inactive 21740.37 50359.28 72099.65
Active
(
anon
)
5152.93 2261.04 7413.96
Inactive
(
anon
)
7448.73 9321.95 16770.68
Active
(
file
)
695.27 3047.74 3743.01
Inactive
(
file
)
14291.64 41037.33 55328.96
Unevictable 0.00 0.00 0.00
Mlocked 0.00 0.00 0.00
Dirty 77.37 264.01 341.38
Writeback 0.00 0.00 0.00
FilePages 14993.80 44102.23 59096.03
Mapped 7917.09 27702.21 35619.30
AnonPages 12594.88 11565.86 24160.74
Shmem 6.74 17.01 23.75
KernelStack 5.72 4.41 10.12
PageTables 76.91 77.98 154.89
NFS_Unstable 0.00 0.00 0.00
Bounce 0.00 0.00 0.00
WritebackTmp 0.00 0.00 0.00
Slab 523.57 952.99 1476.57
SReclaimable 468.23 894.43 1362.66
SUnreclaim 55.34 58.56 113.91
AnonHugePages 4788.00 916.00 5704.00
HugePages_Total 0.00 0.00 0.00
HugePages_Free 0.00 0.00 0.00
HugePages_Surp 0.00 0.00 0.00
```
# 튜닝 설정
*
[
**STEP 1**
]
numactl 명령을 통한 Application을 실행하기 위해, 다음과 같이 간단한 스크립트를 작성 한다.
```
bash
# cat influxdb_control.sh
#!/bin/bash
if
[[
$1
==
"start"
]]
;
then
numactl
--preferred
=
1 /usr/bin/influxd
-config
/etc/influxdb/influxdb.conf &
PID
=
$!
echo
$PID
>
/var/lib/influxdb/influxdb.pid
elif
[[
$1
==
"stop"
]]
;
then
PID
=
`
cat
/var/lib/influxdb/influxdb.pid
`
for
var
in
{
1..3
}
do
kill
-9
$PID
done
rm
-rf
/var/lib/influxdb/influxdb.pid
else
echo
echo
"Requirement Args start | stop "
echo
fi
```
> 핵심 : numactl --preferred=1 /usr/bin/influxd -config /etc/influxdb/influxdb.conf &
*
[
**STEP 2**
]
위 스크립트를 influxdb 사용자로 전환한 후 실행 한다.
```
bash
# su - influxdb
$
./influxdb_control.sh start
```
# 튜닝 수행 결과
> 적용 후 numa_miss가 더 많이 발생되었으며, CPU 사용률도 적용 전보다 더 높아진 상태가 되었기 때문에 서비스에 영향이 발생된 상태 이다.
```
bash
# numastat
node0 node1
numa_hit 42020017845 70745395521
numa_miss 20317875178 37019342
numa_foreign 37019342 20317875178
interleave_hit 32940 33335
local_node 43138729467 70741680969
other_node 19199163556 40733894
```
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment