powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Статистика спящих процессов
5 сообщений из 5, страница 1 из 1
Статистика спящих процессов
    #39750961
BigBudda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На Linux сервере запустил Apache Tomcat.
Проверяю процесс через ps -ef. Команду выполняю несколько раз, вижу что в колонке TIME значение потихоньку увеличивается.
Но происходит это не каждую секунду, а периодически, время от времени.
Насколько я понял, так происходит из-за того, что процесс "засыпает" (sleep), после того, как отработает. Получается в колонке TIME у нас накапливается время работы CPU для процесса.
А как мне узнать точно, сколько раз и в какое время процесс просыпался/засыпал.
Из утилиты top ниже видно, что процесс спит. Флаг S имеет значение S - Sleep.
Было бы здорово соотнести общее время сна к общему времени работы.
Как это сделать?

И второй вопрос: как вывести в файл значения ps/top без лишней информации?
Например из представленного ниже я хочу записать только: значение столбца PID и значение столбца RES .
Код: plsql
1.
2.
   PID      USER      PR   NI     VIRT    RES  SHR S %CPU %MEM    TIME+  COMMAND
  22310    tomcat     20    0    7374m   3.0g 7564 S  0.3 38.7  54:51.78 java


В файле должно содержаться строка:
22310 3.0g
Только хочется ещё добавить столбец даты со временем и собирать каждую минуту через cron.
Итоговый вариант:
Код: plsql
1.
2.
3.
20.12.2018 22310 3.0g
21.12.2018 22310 3.0g
22.12.2018 22310 3.0g



Если я правильно понял, 53 минуты - это суммарное время работы процессора для процесса с PID 22310.
Сам процесс был запущен 14 декабря. верно?
Сколько раз в какое время процесс просыпался/засыпал мне непонятно. Общее время сна к общему времени работы неизвестно.


Код: plsql
1.
tomcat   22310     1  0 Dec14 ?        00:53:51 /opt/jdk1.8.0_121/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-8.5.8
...
Рейтинг: 0 / 0
Статистика спящих процессов
    #39751172
Alex URS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BigBuddaкак вывести в файл значения ps/top без лишней информации?
...
Итоговый вариант:
Код: plsql
1.
20.12.2018 22310 3.0g



например так
Код: javascript
1.
echo -n `date +%d.%m.%Y`;echo -n " ";top -b -n 1 -p 22310 | tail -n 1 | awk '{print $1,$6}' > file



BigBuddaСколько раз в какое время процесс просыпался/засыпал мне непонятно. Общее время сна к общему времени работы неизвестно.


Код: javascript
1.
2.
3.
cat /proc/27288/status
cat /proc/22301/sched
cat /proc/22310/schedstat



и смотрим switches
(например) nr_switches (nr_voluntary_switches + nr_involuntary_switches) и nr_wakeups
...
Рейтинг: 0 / 0
Статистика спящих процессов
    #39751181
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BigBudda, а что Вы хотите добыть из этих цифр? Они пригодны только для грубой оценки, плюс ps в линуксе не делает разницы между running и runnable.
...
Рейтинг: 0 / 0
Статистика спящих процессов
    #39751518
BigBudda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex URSBigBuddaкак вывести в файл значения ps/top без лишней информации?
...
Итоговый вариант:
Код: plsql
1.
20.12.2018 22310 3.0g



например так
Код: javascript
1.
echo -n `date +%d.%m.%Y`;echo -n " ";top -b -n 1 -p 22310 | tail -n 1 | awk '{print $1,$6}' > file


BigBuddaСколько раз в какое время процесс просыпался/засыпал мне непонятно. Общее время сна к общему времени работы неизвестно.

Код: javascript
1.
2.
3.
cat /proc/27288/status
cat /proc/22301/sched
cat /proc/22310/schedstat


и смотрим switches
(например) nr_switches (nr_voluntary_switches + nr_involuntary_switches) и nr_wakeups
Спасибо большое! Лог формируется, но почему-то дата/время в него не попадают.
Код: plsql
1.
22310 3.4g 43.8 63:19.95



Код: plsql
1.
echo -n `date +%d.%m.%Y' '%H:%M:%S`;echo -n " ";top -b -n 1 -p 22310 | tail -n 2 | awk '{print $1,$6,$10,$11}' >> tracking.log



se.nr_wakeups : 0
Это значит, что счётчик пробуждений равен 0, т.е. процесс ни разу не просыпался?
se.sleep_start = se.exec_start

О чём тут говорит se.iowait_sum? Ждал 8 секунд суммарно при обращении к диску?

И почему, если процесс постоянно спит, у него TIME (Процессорное время) растёт:
Код: xml
1.
2.
3.
21.12.2018.20:23:26 22310 tomcat    20   0 7520m 3.4g 7456 S  2.0 43.8  63:12.25 java
21.12.2018.20:27:16 22310 3.4g 43.8 63:12.61
21.12.2018 20:29:18 22310 3.4g 43.8 63:12.76





Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
[root@DB trace]# cat /proc/22310/sched
java (22310, #threads: 55)
---------------------------------------------------------
se.exec_start                      :   14866320182.937136
se.vruntime                        :      12581568.439334
se.sum_exec_runtime                :             8.585425
se.wait_start                      :             0.000000
se.sleep_start                     :   14866320182.937136
se.block_start                     :             0.000000
se.sleep_max                       :             0.000000
se.block_max                       :             0.000000
se.exec_max                        :             1.001475
se.slice_max                       :             0.000000
se.wait_max                        :             0.007579
se.wait_sum                        :             0.007579
se.wait_count                      :                    3
se.iowait_sum                      :          8031.020951
se.iowait_count                    :                  263
sched_info.bkl_count               :                    0
se.nr_migrations                   :                    2
se.nr_migrations_cold              :                    0
se.nr_failed_migrations_affine     :                    0
se.nr_failed_migrations_running    :                    0
se.nr_failed_migrations_hot        :                    0
se.nr_forced_migrations            :                    0
se.nr_wakeups                      :                    0
se.nr_wakeups_sync                 :                    0
se.nr_wakeups_migrate              :                    0
se.nr_wakeups_local                :                    0
se.nr_wakeups_remote               :                    0
se.nr_wakeups_affine               :                    0
se.nr_wakeups_affine_attempts      :                    0
se.nr_wakeups_passive              :                    0
se.nr_wakeups_idle                 :                    0
avg_atom                           :             4.292712
avg_per_cpu                        :             4.292712
nr_switches                        :                    2
nr_voluntary_switches              :                    1
nr_involuntary_switches            :                    1
se.load.weight                     :                 1024
policy                             :                    0
prio                               :                  120
clock-delta                        :                  748
...
Рейтинг: 0 / 0
Статистика спящих процессов
    #39751803
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BigBudda,

Для анализа что, где, когда, как, ... Есть замечательная тулза от IBM - nmon.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Статистика спящих процессов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]