Отправляет email-рассылки с помощью сервиса Sendsay

uptime: единицы измерения

Здравствуйте,

В каких единицах измерения выводится средняя загрузка системы (команда uptime
или cat /proc/loadavg)?

Раньше я думал, что в процентах (было что-то вроде 0.56 0.92 и т.п.), но только
что получил такой результат:

22:10:56 up 1 day, 2:06, 3 users, load average: 2.93, 2.13, 1.85
^^^^^^^^^^^^^^^^
Не может же быть система загружена на 293% :)
-*Название листа "Linux: разрешение вопросов, перспективы и общение"
Архив Листа - http://subscribe.ru/archive/comp.soft.linux.discuss
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 3803
Адрес сайта рассылки: http://www.linuxrsp.ru
Количество участников: 990

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sun, 8 Feb 2004 22:27:50 +0500 (#74841)

 

Ответы:

On Sun, 8 Feb 2004 22:27:50 +0500, Anthony Ivanoff <a-i@b*****.ru> wrote:

man uptime - однозначно! :)

Выдает текущее время, время работы компьютера с его
включения, количество пользователей в системе и среднее
^^^^^^^
количество заданий в очередях за последние 1, 5 и 15
^^^^^^^ ^^^^^^^^^
минут. Если ФАЙЛ не указан, то используется
/var/run/utmp. /var/log/wtmp используется, как ФАЙЛ в
общем случае.

Так что единица измерения: шт.
-*Название листа "Linux: разрешение вопросов, перспективы и общение"
Архив Листа - http://subscribe.ru/archive/comp.soft.linux.discuss
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 3806
Адрес сайта рассылки: http://www.linuxrsp.ru
Количество участников: 990

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   unDEFER Sun, 08 Feb 2004 22:01:20 +0300 (#74919)

 

On 08Feb 10:01, unDEFER wrote:

У меня в man uptime написано так:

...and the system load averages for the past 1, 5, and 15 minutes.
...и средние значения загрузки системы за последние 1, 5 и 15 мин.

Не пойму никак: что за задания? То же, что процессы? Если да, тогда что обозначает,
например, число 0.56, ведь обычно процессов в системе -- несколько десятков!
-*Название листа "Linux: разрешение вопросов, перспективы и общение"
Архив Листа - http://subscribe.ru/archive/comp.soft.linux.discuss
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 3808
Адрес сайта рассылки: http://www.linuxrsp.ru
Количество участников: 988

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 9 Feb 2004 08:26:42 +0500 (#75111)

 

On Mon, 9 Feb 2004 08:26:42 +0500, Anthony Ivanoff <a-i@b*****.ru> wrote:

Вот ещё одно разъяснение - может так, что проясниться (честно говоря сам
до конца так и не понял):
три показателя - это число _активных_задач_ (выполняющихся процессов) за
последние 1, 5 и 15 минут.

А вот некоторые куски из ядра.. может поможет:

********файл /usr/src/linux/include/linux/sched.h
....................
/*
* These are the constant used to fake the fixed-point load-average
* counting. Some notes:
* - 11 bit fractions expand to 22 bits by the multiplies: this gives
* a load-average precision of 10 bits integer + 11 bits fractional
* - if you want to count load-averages more often, you need more
* precision, or rounding will get you. With 2-second counting freq,
* the EXP_n values would be 1981, 2034 and 2043 if still using only
* 11 bit fractions.
*/
extern unsigned long avenrun[]; /* Load averages */

#define FSHIFT 11 /* nr of bits of precision */
#define FIXED_1 (1<<FSHIFT) /* 1.0 as fixed-point */
#define LOAD_FREQ (5*HZ) /* 5 sec intervals */
#define EXP_1 1884 /* 1/exp(5sec/1min) as fixed-point */
#define EXP_5 2014 /* 1/exp(5sec/5min) */
#define EXP_15 2037 /* 1/exp(5sec/15min) */

#define CALC_LOAD(load,exp,n) \
load *= exp; \
load += n*(FIXED_1-exp); \
load >>= FSHIFT;
......................
************************************************

********файл /usr/src/linux/kernel/timer.c
...................
/*
* Hmm.. Changed this, as the GNU make sources (load.c) seems to
* imply that avenrun[] is the standard name for this kind of thing.
* Nothing else seems to be standardized: the fractional size etc
* all seem to differ on different machines.
*/
unsigned long avenrun[3];

static inline void calc_load(unsigned long ticks)
{
unsigned long active_tasks; /* fixed-point */
static int count = LOAD_FREQ;

count -= ticks;
if (count < 0) {
count += LOAD_FREQ;
active_tasks = count_active_tasks();
CALC_LOAD(avenrun[0], EXP_1, active_tasks);
CALC_LOAD(avenrun[1], EXP_5, active_tasks);
CALC_LOAD(avenrun[2], EXP_15, active_tasks);
}
}

/* jiffies at the most recent update of wall time */
unsigned long wall_jiffies;

/*
* This spinlock protect us from races in SMP while playing with xtime.
-arca
*/
rwlock_t xtime_lock = RW_LOCK_UNLOCKED;

static inline void update_times(void)
{
unsigned long ticks;

/*
* update_times() is run from the raw timer_bh handler so we
* just know that the irqs are locally enabled and so we don't
* need to save/restore the flags of the local CPU here. -arca
*/
write_lock_irq(&xtime_lock);

ticks = jiffies - wall_jiffies;
if (ticks) {
wall_jiffies += ticks;
update_wall_time(ticks);
}
write_unlock_irq(&xtime_lock);
calc_load(ticks);
}
....................
************************************************

********файл /usr/src/linux/fs/proc/proc_misc.c
....................
#define LOAD_INT(x) ((x) >> FSHIFT)
#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)
....................
static int loadavg_read_proc(char *page, char **start, off_t off,
int count, int *eof, void *data)
{
int a, b, c;
int len;

a = avenrun[0] + (FIXED_1/200);
b = avenrun[1] + (FIXED_1/200);
c = avenrun[2] + (FIXED_1/200);
len = sprintf(page,"%d.%02d %d.%02d %d.%02d %ld/%d %d\n",
LOAD_INT(a), LOAD_FRAC(a),
LOAD_INT(b), LOAD_FRAC(b),
LOAD_INT(c), LOAD_FRAC(c),
nr_running(), nr_threads, last_pid);
return proc_calc_metrics(page, start, off, count, eof, len);
}
...................
************************************************

Примерно так, истина где-то рядом.. если кто разберется, пожалуйста
скажите, что же на самом деле подразумевается под активными процессами...

--
-*Название листа "Linux: разрешение вопросов, перспективы и общение"
Архив Листа - http://subscribe.ru/archive/comp.soft.linux.discuss
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 3847
Адрес сайта рассылки: http://www.linuxrsp.ru
Количество участников: 988

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   unDEFER Mon, 09 Feb 2004 19:38:35 +0300 (#75896)