Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Утилита top


Автор: Rezzonans 25.4.2009, 11:00
Пишу диплом, и, походу дела нужно отобразить график загруженности сервера при работе. Утилита top для этого очень хорошо подходит, из нее можно выдернуть загруженность процессора, оперативной памяти и свап-файла. Вообщем, запустили её на сервере, что б она снимала данные каждую 0.01 секунды на несколько часов, вот таким вот образом:

Код

    top -d 0.01 > top.log


Файл, конечно же получился большой smile Но суть не в этом, если посмотреть этот файл текстовым редактором, например nano, можно увидеть следующее::

Код

^[[H^[[2J^[[m^[(Btop - 13:48:41 up  3:30,  3 users,  load average: 0.78, 0.40, 0.39^[[m^[(B^[[39;49m^[[K
Tasks:^[[m^[(B^[[39;49m^[[m^[(B 109 ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B   2 ^[[m^[(B^[[39;49mrunning,^[[m^[(B^[[39;49m^[[m^[(B 107 ^[[m^[(B^[[39;49msleeping,^[[m^[(B^[[39;49m^[[m^[(B   0 ^[[m^[(B^[[39;49mstopped,^[[m^[(B^[[$
Cpu(s):^[[m^[(B^[[39;49m^[[m^[(B 20.2%^[[m^[(B^[[39;49mus,^[[m^[(B^[[39;49m^[[m^[(B  1.9%^[[m^[(B^[[39;49msy,^[[m^[(B^[[39;49m^[[m^[(B  0.0%^[[m^[(B^[[39;49mni,^[[m^[(B^[[39;49m^[[m^[(B 77.6%^[[m^[(B^[[39;49mid,^[[m^[(B^[[39;49m^[[m^[(B$
$49mbuffers^[[m^[(B^[[39;49m^[[K
Swap:^[[m^[(B^[[39;49m^[[m^[(B  2578392k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B        0k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B  2578392k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B   619688k ^[[m^[(B^[[39;49mcac$
^[[6;1H
^[[7m  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            ^[[m^[(B^[[39;49m^[[K
^[[m^[(B 3914 root      20   0  360m  42m  11m S   16  0.8  25:14.83 Xorg               ^[[m^[(B^[[39;49m
^[[m^[(B 4272 che       20   0 21108  11m 7772 S   14  0.2  24:54.00 cairo-clock        ^[[m^[(B^[[39;49m
^[[m^[(B^[[m^[(B 8616 che       20   0 21272  11m 7732 R   14  0.2   0:12.37 cairo-clock        ^[[m^[(B^[[39;49m
^[[m^[(B 4425 che       20   0 59424  35m 9356 S    2  0.7   4:31.23 compiz.real        ^[[m^[(B^[[39;49m
^[[m^[(B    1 root      20   0  2100  688  588 S    0  0.0   0:01.29 init               ^[[m^[(B^[[39;49m
^[[m^[(B    2 root      15  -5     0    0    0 S    0  0.0   0:00.00 kthreadd           ^[[m^[(B^[[39;49m
^[[m^[(B    3 root      RT  -5     0    0    0 S    0  0.0   0:00.00 migration/0        ^[[m^[(B^[[39;49m
^[[m^[(B    4 root      15  -5     0    0    0 S    0  0.0   0:00.13 ksoftirqd/0        ^[[m^[(B^[[39;49m
^[[m^[(B    5 root      RT  -5     0    0    0 S    0  0.0   0:00.00 watchdog/0         ^[[m^[(B^[[39;49m
^[[m^[(B    6 root      RT  -5     0    0    0 S    0  0.0   0:00.00 migration/1        ^[[m^[(B^[[39;49m
^[[m^[(B    7 root      15  -5     0    0    0 S    0  0.0   0:00.16 ksoftirqd/1        ^[[m^[(B^[[39;49m
^[[m^[(B    8 root      RT  -5     0    0    0 S    0  0.0   0:00.00 watchdog/1         ^[[m^[(B^[[39;49m
^[[m^[(B    9 root      15  -5     0    0    0 S    0  0.0   0:00.69 events/0           ^[[m^[(B^[[39;49m
^[[m^[(B   10 root      15  -5     0    0    0 S    0  0.0   0:00.60 events/1           ^[[m^[(B^[[39;49m
^[[m^[(B   11 root      15  -5     0    0    0 S    0  0.0   0:00.00 khelper            ^[[m^[(B^[[39;49m
^[[m^[(B   44 root      15  -5     0    0    0 S    0  0.0   0:00.03 kblockd/0          ^[[m^[(B^[[39;49m
^[[m^[(B   45 root      15  -5     0    0    0 S    0  0.0   0:00.03 kblockd/1          ^[[m^[(B^[[39;49m^[[6;1H^[[K^[[H
Tasks:^[[m^[(B^[[39;49m^[[m^[(B 109 ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B   2 ^[[m^[(B^[[39;49mrunning,^[[m^[(B^[[39;49m^[[m^[(B 107 ^[[m^[(B^[[39;49msleeping,^[[m^[(B^[[39;49m^[[m^[(B   0 ^[[m^[(B^[[39;49mstopped,^[[m^[(B^[[$
Cpu(s):^[[m^[(B^[[39;49m^[[m^[(B 33.3%^[[m^[(B^[[39;49mus,^[[m^[(B^[[39;49m^[[m^[(B  0.0%^[[m^[(B^[[39;49msy,^[[m^[(B^[[39;49m^[[m^[(B  0.0%^[[m^[(B^[[39;49mni,^[[m^[(B^[[39;49m^[[m^[(B 66.7%^[[m^[(B^[[39;49mid,^[[m^[(B^[[39;49m^[[m^[(B$
Mem: ^[[m^[(B^[[39;49m^[[m^[(B  5192196k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B  1103892k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B  4088304k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B    79540k ^[[m^[(B^[[39;49mbuf$
Swap:^[[m^[(B^[[39;49m^[[m^[(B  2578392k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B        0k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B  2578392k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B   619688k ^[[m^[(B^[[39;49mcac$
^[[6;1H
^[[7m  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            ^[[m^[(B^[[39;49m^[[K
^[[m^[(B    1 root      20   0  2100  688  588 S    0  0.0   0:01.29 init               ^[[m^[(B^[[39;49m
^[[m^[(B    2 root      15  -5     0    0    0 S    0  0.0   0:00.00 kthreadd           ^[[m^[(B^[[39;49m
^[[m^[(B    3 root      RT  -5     0    0    0 S    0  0.0   0:00.00 migration/0        ^[[m^[(B^[[39;49m
^[[m^[(B    4 root      15  -5     0    0    0 S    0  0.0   0:00.13 ksoftirqd/0        ^[[m^[(B^[[39;49m
^[[m^[(B    5 root      RT  -5     0    0    0 S    0  0.0   0:00.00 watchdog/0         ^[[m^[(B^[[39;49m
^[[m^[(B    6 root      RT  -5     0    0    0 S    0  0.0   0:00.00 migration/1        ^[[m^[(B^[[39;49m
^[[m^[(B    7 root      15  -5     0    0    0 S    0  0.0   0:00.16 ksoftirqd/1        ^[[m^[(B^[[39;49m
^[[m^[(B    8 root      RT  -5     0    0    0 S    0  0.0   0:00.00 watchdog/1         ^[[m^[(B^[[39;49m
^[[m^[(B    9 root      15  -5     0    0    0 S    0  0.0   0:00.69 events/0           ^[[m^[(B^[[39;49m
^[[m^[(B   10 root      15  -5     0    0    0 S    0  0.0   0:00.60 events/1           ^[[m^[(B^[[39;49m
^[[m^[(B   11 root      15  -5     0    0    0 S    0  0.0   0:00.00 khelper            ^[[m^[(B^[[39;49m
^[[m^[(B   44 root      15  -5     0    0    0 S    0  0.0   0:00.03 kblockd/0          ^[[m^[(B^[[39;49m
^[[m^[(B   45 root      15  -5     0    0    0 S    0  0.0   0:00.03 kblockd/1          ^[[m^[(B^[[39;49m
^[[m^[(B   47 root      15  -5     0    0    0 S    0  0.0   0:00.00 kacpid             ^[[m^[(B^[[39;49m
^[[m^[(B   48 root      15  -5     0    0    0 S    0  0.0   0:00.00 kacpi_notify       ^[[m^[(B^[[39;49m
^[[m^[(B  135 root      15  -5     0    0    0 S    0  0.0   0:00.01 kseriod            ^[[m^[(B^[[39;49m
^[[m^[(B  176 root      20   0     0    0    0 S    0  0.0   0:00.00 pdflush            ^[[m^[(B^[[39;49m^[[6;1H^[[K^[[H
Tasks:^[[m^[(B^[[39;49m^[[m^[(B 109 ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B   2 ^[[m^[(B^[[39;49mrunning,^[[m^[(B^[[39;49m^[[m^[(B 107 ^[[m^[(B^[[39;49msleeping,^[[m^[(B^[[39;49m^[[m^[(B   0 ^[[m^[(B^[[39;49mstopped,^[[m^[(B^[[$
Cpu(s):^[[m^[(B^[[39;49m^[[m^[(B 33.3%^[[m^[(B^[[39;49mus,^[[m^[(B^[[39;49m^[[m^[(B  0.0%^[[m^[(B^[[39;49msy,^[[m^[(B^[[39;49m^[[m^[(B  0.0%^[[m^[(B^[[39;49mni,^[[m^[(B^[[39;49m^[[m^[(B 66.7%^[[m^[(B^[[39;49mid,^[[m^[(B^[[39;49m^[[m^[(B$
Mem: ^[[m^[(B^[[39;49m^[[m^[(B  5192196k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B  1103892k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B  4088304k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B    79540k ^[[m^[(B^[[39;49mbuf$
Swap:^[[m^[(B^[[39;49m^[[m^[(B  2578392k ^[[m^[(B^[[39;49mtotal,^[[m^[(B^[[39;49m^[[m^[(B        0k ^[[m^[(B^[[39;49mused,^[[m^[(B^[[39;49m^[[m^[(B  2578392k ^[[m^[(B^[[39;49mfree,^[[m^[(B^[[39;49m^[[m^[(B   619688k ^[[m^[(B^[[39;49mcac$
^[[6;1H


Вообщем, вопрос, как привести эти данные в удобочитаемый вид. Или может, кто подскажет аналогичные top утилиты, что б нормально можно было снять данные?
Спасибо большое!

Автор: SparF 25.4.2009, 11:55
Цитата(Rezzonans @  25.4.2009,  11:00 Найти цитируемый пост)
Вообщем, вопрос, как привести эти данные в удобочитаемый вид.

Что при решении данной задачи служит признаком удобочитаемости данных? Каким должен быть выходной формат?

Если я правильно понял, то нужно что-то такое:
Код

#!/bin/bash
top -b -n 1 > log.txt
grep Cpu log.txt >> out.log
grep Mem log.txt >> out.log
grep Swap log.txt >> out.log

Автор: Vaulter 25.4.2009, 17:52
top предназначена для человека, а не для построения графика.
график загруженности отлично строет связка webmin + webmin-sysstats


Автор: Rezzonans 26.4.2009, 11:33
SparF, 

Спасибо, с ключом -b прям то что нужно.



Vaulter, 

Вам тоже спасибо за информацию. Думаю пригодиться

Автор: bilbobagginz 26.4.2009, 23:04
Vaulter, http://www.cacti.net/тоже очень неплохие графики делает... 

Автор: xgm 27.4.2009, 16:19
Монитор:
http://www.ibm.com/developerworks/wikis/display/WikiPtype/nmon
Анализатор:
http://www.ibm.com/developerworks/aix/library/au-nmon_analyser/

Автор: gcc 27.4.2009, 18:07
в одну строку написать можно весь диплом smile



Автор: xgm 27.4.2009, 19:25
2 gcc:
> в одну строку написать можно весь диплом 
Это к чему относится?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)