Как интерпретировать эту главную команду

От GNU awk руководство:

Много языков программирования имеют специальное представление для понятия “истинных” и “ложных”. Такие языки обычно используют специальную истину и ложь констант или возможно их прописные эквиваленты. Однако awk отличается. Это одалживает очень простое понятие истины и лжи от C. В awk, любом ненулевом числовом значении или любом значении непустой строки верно. Любое другое значение (нуль или пустая строка, "") является ложью.

Да, то использование является портативным и будущим безопасным.

Заметка на полях, это показывает Ваш второй пример,

echo 'b-does-print-$0' | awk '$0'  

не распечатает каждую строку, только те, что awk интерпретирует как истинная строка, т.е. пустая строка или строка, содержащая только способ записать номер 0 (0, 00, 0.0e3, -.0, …).

2
16.02.2013, 17:54
2 ответа

Я копирую это со страницы справочника, которую я записал для plog, так как я пытался прояснить там:

Важно понять различие между виртуальным адресным пространством и физической памятью в интерпретации некоторых вышеупомянутых статистических данных. Поскольку имя подразумевает, виртуальное адресное пространство не реально; это - в основном карта всей памяти, в настоящее время выделяемой процессу. Предел на размер этой карты является тем же для каждого, обрабатывает (обычно, 2-4 ГБ), и это не накапливается (т.е., у Вас могут быть десятки или сотни процессов, каждый с ее собственным виртуальным адресным пространством на 2-4 ГБ, в системе, которая только на самом деле имеет 512 МБ физической памяти).

Данные не могут на самом деле храниться или получаться от виртуального адресного пространства; реальные данные требуют реальной, физической памяти. Это - задание ядра для управления один относительно другого. Виртуальная статистика пространства (VirtualSz, Data+Stack и Priv&Write) полезна для рассмотрения структуры процесса и отношений к использованию физической памяти, но относительно суммы RAM, на самом деле используемой, статистика физической памяти (ResidentSz, Доля и Пропорция) что количества.

Вершина не вполне имеет всех тех метрик, но счет VIRT является виртуальным адресным пространством, RES относится к физической памяти, как делает SHR. Если Вы обеспокоены относительным использованием памяти (т.е., один процесс по сравнению с другим), счет RES более релевантен.

Определенные части VIRT релевантны относительно других процессов; щитки, такие как openVZ ограничивают контейнеры на основе общей суммы частного перезаписываемого адресного пространства, не RSS. Вершина не сообщает об этом, но pmap и plog делают (см. plog страницу справочника для "Priv&Write"; это было на самом деле частью моего повода при записи этого).

3
27.01.2020, 22:01
  • 1
    Обратите внимание, что RES является частью в память о виртуальном адресном пространстве, и многое из этого будет общими для процессами. –  vonbrand 16.02.2013, 16:30
  • 2
    @vonbrand Это не документируется в man proc, но (Linux) ядро (с 2.6.something?) сообщает фигура Pss в /proc/<pid>/smaps. Это похоже на RSS ("RES" вершины) кроме него просто неразделенное пространство плюс общие регионы, разделенные на количество других процессов, совместно использующих их, который довольно удобен. К сожалению, вершина не сообщает что (но plog делает ;)). Просто вычитание SHR от RES не очень точно, потому что SHR реален. Если существует только два процесса, получающие доступ к библиотеке, то пространство "совместно используется", но не очень. –  goldilocks 16.02.2013, 17:01
  • 3
    , который Вы знаете, почему %sy настолько высок>? –  user4951 16.02.2013, 17:54
  • 4
    @Thio:без понятия. ядро вращает свои колеса по чему-то. Попробовать ps -A -o state,pid,comm | grep "^D". Если Вы видите что-нибудь, то у Вас может быть дисковое повреждение, которое вызовет систему ввод-вывод занятый цикл (Google "бесперебойный сон"). Это - все, о чем я могу думать, не зная ничто больше о самой системе. Это - маловероятный tho, поскольку я думаю, что те процессы D были бы очевидны с высоким использованием ЦП в вершине. –  goldilocks 16.02.2013, 18:54

Согласно выводу Вашей вершины, кажется, что существует проблема в Ваших сценариях PHP, можно проверить

  • удостоверьтесь, что сценарий PHP правильно работает или нет
  • проверьте журналы ошибок апача
  • проверьте запись крона некоторое время многие, сценарий PHP пробегает крон
  • также попытайтесь узнать причину процессов-зомби
  • настройте апача и php

Я уверен, что высокая загрузка из-за php, можно просто уничтожить процессы php путем выполнения

killall -9 php Или pkill -9 php затем Наблюдайте в вершине.

1
27.01.2020, 22:01

Теги

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