[Linux] sysstat์ sar์ ํตํ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ์ดํด
sar ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฉด์๋ ํด๋น ๋ด์ฉ์ ๋ํ ๊ฐ๋ ์ด ์ ํํ์ง ์์ ๊ฒ ๊ฐ์ ๊ธ๋ก ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค.
sysstat๋?
sar ๋ฐ์ดํฐ์ ๋ํด ์๋ ค๋ฉด ๋จผ์ sysstat์ ๋ํด ์์์ผ ํ๋ค. sysstat์ ๋ฆฌ๋ ์ค ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ํจํค์ง๋ก sar, iostat๊ณผ ๊ฐ์ ์ฑ๋ฅ ๋ถ์ ํด์ ์ ๊ณตํ๋ค. ์ด ์ค ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ sar์ ๊ฒฝ์ฐ์๋ cpu, memory, network, disk IO ๋ฑ ์งํ๋ฅผ ์์นํํ์ฌ ํ์ผ๋ก ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
์๋์ ๋ช ๋ น์ด๋ฅผ ํตํด ๋ค์ด๋ก๋ ๊ฐ๋ฅํ๊ณ , epel-release๊ฐ ๋จผ์ ์ค์น๋์ด ์์ด์ผ ํ๋ค.
dnf install sysstat
sar (System Activity Reporter)
sar๋ sysstat ํจํค์ง์ ํต์ฌ ์ ํธ๋ฆฌํฐ๋ก ์์คํ ์ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๋ถ์ํ๊ธฐ ์ํ ๋ช ๋ น์ด์ด๋ค. sar๋ฅผ ํตํด ์ค์๊ฐ์ผ๋ก ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ฑฐ๋ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ์ํ ์ ์๋ค.
sar์ ๊ตฌ์ฑ์์
๊ฐ๊ฐ์ ๊ตฌ์ฑ์์๋ ์ฑ๋ฅ ๋ฐ์ดํฐ ์์ง, ์ ์ฅ, ๋ถ์, ์ถ๋ ฅ ์ญํ ์ ๋ด๋นํ๋ค.
- sadc (System Activity Data Collector)
sar์ ๋ฐฑ์๋์์ ์์คํ ์ฑ๋ฅ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ด๋ฅผ ์ด์ง ๋ฐ์ดํฐ ํ์ผ ํ์์ผ๋ก ์ ์ฅํ๋ค.
๋ฐ์ดํฐ๋ฅผ /var/log/sa ๋๋ ํฐ๋ฆฌ์ sa{๋ ์ง} ํ์์ผ๋ก ์ ์ฅํ๋ค. - sadf (System Activity Data Formatter)
sar์์ ์์ฑ๋ ์ด์ง ๋ฐ์ดํฐ ํ์์ ํ์ผ์ json, csv ๋ฑ์ ํฌ๋งท์ผ๋ก ๋ณํํ์ฌ ์ถ๋ ฅํด ์ค๋ค.
sadf -d /var/log/sa/sa{๋ ์ง} -- -r
- sa1 (Data Collection Script)
sadc๋ฅผ ํธ์ถํ๋ ์คํฌ๋ฆฝํธ - sa2 (Data Aggregation Script)
sa1์ ํตํด ์์ฑ๋ ๋ฐ์ดํฐ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ์ํ๋ ์งํ ์ต์ ์ ์ ํํด ์ฌ๋์ด ์ฝ์ ์ ์๋ ํ์ผ ํํ๋ก ์ ์ฅํ๋ bash ์คํฌ๋ฆฝํธ. /var/log/sa/sar{๋ ์ง} ๊ฒฝ๋ก์ ์ ์ฅ๋๋ค.
๊ธฐ๋ณธ ์ต์ ์ค์
sysstat ์ค์น ํ ๊ธฐ๋ณธ ์ต์ ์ /etc/sysconfig/sysstat ๊ฒฝ๋ก์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
- HISTORY: sa log ํ์ผ์ ๋ณด๊ด ์ฃผ๊ธฐ. ๋ง์ฝ 28๋ณด๋ค ํฐ ์ซ์๋ก ์ค์ ํ ๊ฒฝ์ฐ ํ๋ฌ์ด ์ง๋๋ฉด ๊ธฐ์กด sa{๋ ์ง} ํ์์ ๋ก๊ทธ ํ์ผ์ ๋ฎ์ด์์ธ๋ค.
- SADC_OPTIONS: sadc์ ๋์ ์ต์ ์ ์ค์ ํ๋ ๋ณ์๋ก ๋น ๊ณต๋ฐฑ์ธ ๊ฒฝ์ฐ sar๊ฐ ์ ๊ณตํ๋ ์งํ์ ๊ธฐ๋ณธ๊ฐ๋ง ์ฌ์ฉํ๋ค๋ ๋ป์ด๋ค. disk io์ ๋ํ ํญ๋ชฉ์ ๊ธฐ๋ณธ ํญ๋ชฉ์ ์๊ธฐ ๋๋ฌธ์ -S DISK ์ต์ ์ ์ถ๊ฐํ์ฌ ๋์คํฌ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ค.
๋ฐ์ดํฐ ์์ง ์ฃผ๊ธฐ ์ค์
/etc/cron.d ๊ฒฝ๋ก์ sysstat ํ์ผ์ ์์ฑํ๊ณ ๋ค์๊ณผ ๊ฐ์ด cron ์์ ์ ์์ฑํด์ค๋ค.
๋งค 10๋ถ๋ง๋ค ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ ํ์ผ๋ก ์ ์ฅํ๋๋ก ์ค์ ํ์๊ณ , ๋งค์ผ 23์ 50๋ถ์ sar{๋ ์ง} ํ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์งํ ํ์์ผ๋ก ์ ์ฅ๋๋ค.
Rocky 8 ์ด์๋ถํฐ๋ cron์ด ์๋ systemd timer์ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝ๋์๋ค๋๋ฐ... ์ด๊ฑด ์ถํ์ ์ฐพ์๋ณด๊ธฐ๋ก..
๋ช ๋ น์ด ์ฌ์ฉ๋ฒ
์์ฃผ ์ฌ์ฉํ๋ ๋ช ๋ น์ด๋ง ๋ฐ๋ก ์ ๋ฆฌํด๋์๋ค.
1. CPU ์ฌ์ฉ๋ฅ
sar -u
- %user: ์ฌ์ฉ์ ๋ ๋ฒจ (application level -> ex. ํ๋ก๊ทธ๋จ)์์์ CPU ์ฌ์ฉ๋ฅ
- %nice: ํ๋ก์ธ์ค ์ฐ์ ์์(nice)์ ๊ฐ์ค์น๋ฅผ ์ค CPU ์ฌ์ฉ๋ฅ (ex. %nice = 20%๋ผ๋ฉด CPU ์ฌ์ฉ ์๊ฐ์ 20%๊ฐ ์ฐ์ ์์๊ฐ ๋ฎ์ ์์ ์ ํ ๋น๋์๋ค๋ ๋ป)
- %system: ์ปค๋ ๋ ๋ฒจ์์ ์คํ ์ค์ธ ์์ ์ CPU ์ฌ์ฉ๋ฅ (ex. ์์คํ ํธ์ถ, ๋๋ผ์ด๋ฒ ์คํ)
- %iowait: CPU๊ฐ I/O ์์ ์ ๊ธฐ๋ค๋ฆฌ๋ ๋์์ ๋น์จ
- %steal: ๊ฐ์ํ ํ๊ฒฝ์์ ๋ค๋ฅธ CPU์ ์ํด ๊ฐ์ ๋ก CPU ์ฌ์ฉ์ด ์ค๋จ๋ ์๊ฐ์ ๋น์จ
- %idle: CPU๊ฐ ์์ ํ ์ ํด์ํ์ ์๋ ์๊ฐ ๋น์จ
๐ ์ถ๊ฐ ์ฐธ๊ณ ์ฌํญ
%user์ %system
%user๊ฐ ๋์ผ๋ฉด ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ถํ๊ฐ ๋ง๋ค๋ ๋ป์ด๊ณ %system์ด ๋์ผ๋ฉด ์ปค๋ ๊ด๋ จ ์์
์ด๋ I/O ๋ถํ๊ฐ ๋ง๋ค๋ ๋ป
%iowait
๋์ ๊ฐ์ ๋์คํฌ๋ ๋คํธ์ํฌ ๋ณ๋ชฉ ํ์์ ๋ํ๋
%idle
ํด๋น ๊ฐ์ด ๋์ผ๋ฉด ์์คํ
์ด ๋นํจ์จ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์์ ์ ์์
2. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ฅ
sar -r
- %kbmemfree: free ์ํ์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ (๋ฌผ๋ฆฌ์ ์ผ๋ก ๋จ์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ)
- %kbavail: swap ์์ด ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์์ํ ๋ ์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์
- %kbmemused: ์ฌ์ฉ ์ค์ธ ๋ฌผ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ
- %memused: ์ฌ์ฉ ์ค์ธ ๋ฉ๋ชจ๋ฆฌ์ ๋ฐฑ๋ถ์จ
- %kbbuffers: ๋์คํฌ I/O์ ์ฌ์ฉ๋๋ ๋ฒํผ ์บ์์ ํฌ๊ธฐ
- %kbcached: ๋์คํฌ์์ ์ฝ์ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ ํฌ๊ธฐ
- %kbcommit: ํ์ฌ ์์คํ ์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ (์ค์ ์ฌ์ฉ์ค์ธ user ์์ญ ํฌ๊ธฐ + cache)
- %commit: kbcommit์ ์ ์ ๋ฐฑ๋ถ์จ
- %kbactive: ์ต๊ทผ์ ์ฌ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ(ํ์ฑ ์ํ) ํฌ๊ธฐ
- %kbinact: ์ค๋๋ ์ฌ์ฉ ์ํ๋ก ํ์ฌ ๋นํ์ฑํ๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ
- %kbdirty: ์์ง ๋์คํฌ์ ๊ธฐ๋ก๋์ง ์์ ๋ณ๊ฒฝ๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ
3. ๋์คํฌ ์ฌ์ฉ๋ฅ
sar -d
- tps: ์ด๋น I/O ์ ์ฒด IOPS
- rkB/s: ์ด๋น disk์์ ์ฝ์ด์ง ๋ฐ์ดํฐ ํฌ๊ธฐ
- wkB/s: ์ด๋น ๋์คํฌ์ ๊ธฐ๋ก๋ ๋ฐ์ดํฐ ํฌ๊ธฐ
- dkB/s: rkB/s + wkB/s
- areq-sz: ํ๊ท I/O ์์ฒญ ํฌ๊ธฐ
- aqu-sz: I/O ์์ ์์ฒญ ๋๊ธฐ์ด์ ํ๊ท ๊ธธ์ด
- await: I/O ์์ ํ๋๊ฐ ์๋ฃ๋๊ธฐ๊น์ง ๊ฑธ๋ฆฐ ํ๊ท ์๊ฐ (ms)
- %util: ๋์คํฌ์ ์ฌ์ฉ๋ฅ
์ถ์ฒ: https://brunch.co.kr/@lars/9