RRD¸¦ ÀÌ¿ëÇÑ CPU »ç¿ë·® ¸ð´ÏÅ͸µ
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

¼Ò°³

¿î¿µÀÚ¿ë À§Å°ÆäÀÌÁö¸¦ ¿Ï¼ºÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î ¸¸µé¾îÁø À§Å°ÆäÀÌÁö·Î, µð½ºÅ© »ç¿ëÁ¤º¸ ¸ð´ÏÅ͸µ¿¡ À̾ CPU»ç¿ë·® ¸ð´ÏÅ͸¦ À§ÇÑ ½Ã½ºÅÛÀ» ¸¸µé °ÍÀÌ´Ù.

¸ð´ÏÅ͸µ ÇÏ´Â CPUÁ¤º¸´Â ´ÙÀ½°ú °°´Ù.
  1. CPU Load Average : 1ºÐ, 5ºÐ 15ºÐ

CPUÁ¤º¸ ¾ò¾î¿À±â

CPUÁ¤º¸¸¦ ¾ò¾î¿À±â À§Çؼ­ procÆÄÀÏÀ» ºÐ¼®ÇÏ´Â °£´ÜÇÑ CÇÁ·Î±×·¥À» ¸¸µéµµ·Ï ÇϰڴÙ. ÀÌ ÇÁ·Î±×·¥Àº /proc/loadavgÆÄÀÏÀ» ºÐ¼®Çؼ­ Load Average¸¦ ¾ò¾î¿Â´Ù.

#include <stdio.h> 
 
#define PROCFILE "/proc/loadavg" 
 
struct loadavg 
{ 
  float avg1; 
  float avg5; 
  float avg15; 
}; 
int main(int argc, char **argv) 
{ 
  FILE *fp; 
  char buf[256]; 
  struct loadavg Avg; 
 
  fp = fopen(PROCFILE, "r"); 
  if (fp == NULL) 
    return 1; 
  fgets(buf, 255, fp); 
  sscanf(buf, "%f %f %f", &Avg.avg1, &Avg.avg5, &Avg.avg15); 
  fclose(fp); 
  printf("%1.2f:%1.2f:%1.2f\n", Avg.avg1, Avg.avg5, Avg.avg15); 
} 
 

µ¥ÀÌÅÍ ÀÔ·Â

ÀÌÁ¦ cronÀ» ÀÌ¿ëÇØ¼­, 5ºÐ°£°ÝÀ¸·Î À§ÀÇ ÇÁ·Î±×·¥À» ½ÇÇà½ÃÄѼ­ ¾ò¾î¿Â °ªÀ», rrdtoolÀ» ÀÌ¿ë DB¿¡ ÀûÀçÇϵµ·Ï ÇÏ¸é µÈ´Ù.

±×Àü¿¡ ÀûÀçÇÒ DB¸¦ »ý¼ºÇÑ´Ù.
rrdtool create rrd_cpuload.rrd --start 1164710336 --step 300 \ 
DS:1min:GAUGE:600:U:U \ 
DS:5min:GAUGE:600:U:U \ 
DS:15min:GAUGE:600:U:U \ 
RRA:AVERAGE:0.5:1:600 \ 
RRA:AVERAGE:0.5:6:700 \ 
RRA:AVERAGE:0.5:24:775 \ 
RRA:AVERAGE:0.5:288:797 
 

cronÀ» ÀÌ¿ëÇØ¼­ ½ÇÇàÇÒ ½ºÅ©¸³Æ®´Â ´ÙÀ½°ú °°´Ù.
#!/bin/sh 
 
TIME=`date +%s` 
VALUE=`/usr/local/bin/cpurrd` 
/usr/local/bin/rrdtool update /usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd $TIME:$VALUE 
 

±×·¡ÇÁ »ý¼º

¿ª½Ã cornÀ» ÀÌ¿ëÇØ¼­ 5ºÐ°£°ÝÀ¸·Î ±×·¡ÇÁ¸¦ »ý¼ºÇÒ °ÍÀÌ´Ù.
#!/bin/sh 
CUTIME=`date +%s` 
# 6 hour 
FROM=`echo "$CUTIME - (3600*6)" | bc` 
/usr/local/bin/rrdtool graph /usr/local/mutihost/joinc/modules/rrd/images/cpu.png \ 
-s $FROM --vertical-label "Cpu Load Average" \ 
DEF:linea=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:1min:AVERAGE \ 
STACK:linea#54EB48:"1min" \ 
"GPRINT:linea:LAST:%1.2lf" \ 
DEF:lineb=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:5min:AVERAGE \ 
STACK:lineb#EBD648:"5min" \ 
"GPRINT:lineb:LAST:%1.2lf" \ 
DEF:linec=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:15min:AVERAGE \ 
STACK:linec#EB9C48:"15min" \ 
"GPRINT:linec:LAST:%1.2lf" \ 
HRULE:0.8#FF0000:"Maximum allowed" 
 
# 24 hour 
FROM=`echo "$CUTIME - (3600*24)" | bc` 
/usr/local/bin/rrdtool graph /usr/local/mutihost/joinc/modules/rrd/images/cpuday.png \ 
-s $FROM --vertical-label "Cpu Load Average" \ 
DEF:linea=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:1min:AVERAGE \ 
STACK:linea#54EB48:"1min" \ 
"GPRINT:linea:LAST:%1.2lf" \ 
DEF:lineb=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:5min:AVERAGE \ 
STACK:lineb#EBD648:"5min" \ 
"GPRINT:lineb:LAST:%1.2lf" \ 
DEF:linec=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:15min:AVERAGE \ 
STACK:linec#EB9C48:"15min" \ 
"GPRINT:linec:LAST:%1.2lf" \ 
HRULE:0.8#FF0000:"Maximum allowed" 
 
# 1mon 
FROM=`echo "$CUTIME - (3600*24*31)" | bc` 
/usr/local/bin/rrdtool graph /usr/local/mutihost/joinc/modules/rrd/images/cpumon.png \ 
-s $FROM --vertical-label "Cpu Load Average" \ 
DEF:linea=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:1min:AVERAGE \ 
STACK:linea#54EB48:"1min" \ 
"GPRINT:linea:LAST:%1.2lf" \ 
DEF:lineb=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:5min:AVERAGE \ 
STACK:lineb#EBD648:"5min" \ 
"GPRINT:lineb:LAST:%1.2lf" \ 
DEF:linec=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:15min:AVERAGE \ 
STACK:linec#EB9C48:"15min" \ 
"GPRINT:linec:LAST:%1.2lf" \ 
HRULE:0.8#FF0000:"Maximum allowed" 
 
# 1year 
FROM=`echo "$CUTIME - (3600*24*31*12)" | bc` 
/usr/local/bin/rrdtool graph /usr/local/mutihost/joinc/modules/rrd/images/cpuyear.png \ 
-s $FROM --vertical-label "Cpu Load Average" \ 
DEF:linea=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:1min:AVERAGE \ 
STACK:linea#54EB48:"1min" \ 
"GPRINT:linea:LAST:%1.2lf" \ 
DEF:lineb=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:5min:AVERAGE \ 
STACK:lineb#EBD648:"5min" \ 
"GPRINT:lineb:LAST:%1.2lf" \ 
DEF:linec=/usr/local/mutihost/joinc/modules/rrd/rrd_cpuload.rrd:15min:AVERAGE \ 
STACK:linec#EB9C48:"15min" \ 
"GPRINT:linec:LAST:%1.2lf" \ 
HRULE:0.8#FF0000:"Maximum allowed" 
 
´ÙÀ½Àº »ý¼ºµÈ ±×·¡ÇÁµéÀÌ´Ù.

ÃÖ±Ù 6½Ã°£

http://www.joinc.co.kr/modules/rrd/images/cpu.png

ÃÖ±Ù ÇÏ·ç

http://www.joinc.co.kr/modules/rrd/images/cpuday.png

ÀÚ¼¼ÇÑ Ãâ·Â°á°ú¹°Àº Joinc ½Ã½ºÅÛÁ¤º¸ÆäÀÌÁö¸¦ È®ÀÎÇϱ⠹ٶõ´Ù.
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.