Ganglia
Ganglia
Ganglia
Distributed monitoring
system
-Tirumal
Cluster?
A cluster is a collection of
computers which work together in
accomplishing a task.
1
Ganglia?
Ganglia Architecture
2
Ganglia –A monitoring tool
3
A snapshot of our enhanced
Ganglia
4
Modifying the source code
/gmond/key_metrics.h
/gmond/metric.h
/gmond/machines/linux.c
Key_metrics.h
enum {
cpu_num,
cpu_num,
cpu_speed,
cpu_speed,
mem_total,
mem_total,
swap_total,
swap_total,
cpu_temp,
sys_clock,
sys_clock,
mem_free,
mem_free,
mem_shared,
mem_shared,
mem_buffers,
mem_buffers,
cpu_idle,
cpu_idle,
swap_free,
swap_free,
load_one,
load_one,
load_five,
load_five,
load_fifteen,
load_fifteen,
proc_run,
proc_run,
proc_total,
proc_total, …..}
5
Metric.h
extern g_val_t cpu_num_func(void);
cpu_num_func(void);
extern g_val_t cpu_speed_func(void);
cpu_speed_func(void);
extern g_val_t mem_total_func(void);
mem_total_func(void);
extern g_val_t swap_total_func(void);
swap_total_func(void);
extern g_val_t sys_clock_func(void);
sys_clock_func(void);
extern g_val_t cpu_idle_func(void);
cpu_idle_func(void);
extern g_val_t load_one_func(void);
load_one_func(void);
extern g_val_t load_five_func(void);
load_five_func(void);
extern g_val_t load_fifteen_func(void);
load_fifteen_func(void);
extern g_val_t proc_run_func(void);
proc_run_func(void);
extern g_val_t proc_total_func(void);
proc_total_func(void);
extern g_val_t cpu_temp_func(void);
cpu_temp_func(void);
/machines/linux.c
g_val_t cpu_num_func ( void )
{
static int cpu_num = 0;
g_val_t val;
val; /* Only need to do this once */ if (! cpu_num)
cpu_num) {
cpu_num = get_nprocs();
get_nprocs();
}
val.uint16 = cpu_num;
cpu_num;
return val;
val;
}
g_val_t cpu_temp_func(void)
cpu_temp_func(void)
{
val.uint16=34;
return val;
val;
}
6
Using gmetric tool
Courtesy :http://monitor.millennium.berkeley.edu/
7
UC Berkeley Millennium Demo
Courtesy :http://monitor.millennium.berkeley.edu/
8
RRDtool