Infra & DevOps/Linux

[Linux] sysstat์™€ sar์„ ํ†ตํ•œ ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง ์ดํ•ด

hyeyeonismm 2024. 4. 9. 13:11
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