Как демон может оставаться активным, не используя память?

это работает для меня:

bool hasColumnName = reader.GetSchemaTable().AsEnumerable().Any(c => c["ColumnName"] == "YOUR_COLUMN_NAME");
1
задан shellwhale 18 January 2019 в 05:17
поделиться

2 ответа

Несмотря на то, что ответ Жан-Батиста верен, я считаю, что в данном случае более важно, что вся 0 память во всех трех процессах, которые вы отмечаете, являются потоками ядра. Их память - это вся память ядра, и она не отображается сверху или пс. Вы можете сказать, что это поток ядра в linux как по команде, заключенной в квадратные скобки, так и по процессу, не занимающему память в столбце VSZ. (Это столбец, представляющий практически все, что можно считать памятью процесса. Это только 0 для потоков ядра, и это только потому, что они не сообщают должным образом свою память.

Также обратите внимание, что со временем запуска в 2018 и, потратив не более 1 минуты 41 секунды, ни одна из этих работ на самом деле не очень активна.

0
ответ дан Ed Grimm 18 January 2019 в 05:17
поделиться

%MEM, вероятно, не полностью задокументировано в вашей системе. Руководство AIX о команде ps гласит:

%MEM

Рассчитывается как сумма числа страниц рабочего сегмента и сегмента кода в памяти 4 (что значение RSS), деленное на размер используемой реальной памяти, в машине в КБ, умноженное на 100, округленное до ближайшего полного процентного пункта. Это значение пытается передать процент реальной памяти, используемой процессом. К сожалению, как и RSS, он имеет тенденцию преувеличивать стоимость процесса, который разделяет текст программы с другими процессами. Кроме того, округление до ближайшей процентной точки приводит к тому, что все процессы в системе, у которых значения RSS меньше 0,005 реального объема памяти, имеют% MEM 0,0.

Как вы могли догадаться, изучив выходные данные, было применено некоторое округление. Поэтому, если значение слишком низкое, печатается% 0.0.

И это процентный показатель реального использования памяти, что означает, что он не отражает размер процесса, а только то, какая часть процесса фактически отображается в реальную память.

В вашем первом случае% 0.0 для ЦП просто означает, что процесс существует, но на самом деле ничего не делает, и он, вероятно, находится в состоянии ожидания (или потребляет очень маленький процент вычислительной мощности), а не «что это не так в использовании". Во втором случае ваш процесс активен, на самом деле он очень занят (это отражено в %97.7), но то, что он делает, глупо (бесконечный цикл ничего не делает).

Чтобы понять все это, вы можете прочитать о состоянии процесса, планировании процесса и виртуальной памяти.

0
ответ дан Jean-Baptiste Yunès 18 January 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: