Потребление памяти AIX

Я рисковал бы предположить что, потому что карта Nvidia является мобильной, она использует технологию Optimus Nvidia. (Я не подтвердил это для Вашей точной карты),

Однако у меня была эта та же проблема с Gnome 3, возвращающимся к нейтрализации (в Fedora), если у меня правильно не было решения с открытым исходным кодом для Optimus на моем ноутбуке, проблема, которая может быть решена с BumbleBee.

... И некоторые примечания от Wiki Вашего дистрибутива.

4
28.11.2016, 20:06
3 ответа

Краткая версия: посмотрите на используемые страницы clnt+pers в выводе svmon -G (единица измерения - 4к страниц), если хотите знать весь файловый кэш, или посмотрите на vmstat -v и посмотрите на "страницы файлов" для файлового кэша, исключая исполняемые файлы (один и тот же блок).


Вам следует прочитать следующую статью, если вы хотите получить хорошее представление о том, что происходит: Обзор замены страниц AIX.

Для очень короткого обзора, память в AIX классифицируется двумя способами:

  • Рабочая память против постоянной памяти

    • Рабочая память - это процесс (стек, куча, общая память) и память ядра. Если в такой памяти должны быть страницы, то она переходит в режим подкачки.

    • Постоянная память - это файловый кэш. Если нужно вывести страницы, то она возвращается обратно в файловую систему, откуда пришла (для грязных страниц чистые страницы просто перерабатываются). Он подразделяется на неклиентские (или постоянные) страницы для файловых систем JFS и клиентские страницы для JFS2, NFS и, возможно, других.

  • Вычислительные и не вычислительные страницы.

    • Вычислительные страницы - это снова данные процесса и ядра, плюс текстовые данные процесса (т.е. страницы, которые кэшируют исполняемый файл/код).

    • Невычислительными являются другие: файловый кэш, который не является исполняемым (или разделяемой библиотекой).

svmon -G (btw, svmon -G -O unit=MB немного более дружественный) дает Вам работу по сравнению с постоянными страницами. Колонка work является, ну, рабочей памятью. Вы получаете постоянную память, сложением столбцов pers (JFS) и clnt (JFS2).

В вашем случае, у вас есть около 730 МБ постоянных страниц, которые поддерживаются вашими файловыми системами (186151*4k страниц).

Теперь topas top-right "widget" FileSystemCache (numperm) показывает что-то немного другое, и Вы получите те же самые данные с vmstat -v: это только не вычисляемые постоянные страницы, т.е. то же самое, что и выше, но исключая страницы для исполняемых файлов.

В вашем случае это около 350МБ (2,2% от 16Гб).

В любом случае, это действительно не так уж и много кэша.

5
27.01.2020, 20:54

Команда, которую вы ищете (imho):

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB

Ключевые параметры здесь:

  • 'filtertype = working' # aka, no cache;
  • 'segment = off' # фактически по умолчанию при использовании -O
  • 'filtercat = exclusive' # не включать разделяемую память или ядро ​​atm
  • 'unit = MB' # кто хочет вычислить из # страниц ??

И вы захотите посмотреть на другие параметры, такие как -C (связанные с именем команды, некоторые примеры ниже) и, возможно, -U (связанные с пользователем)

++++ начало комментария ++++

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

Ваш вывод vmstat говорит мне не только о вашей текущей ситуации - поскольку это однострочный вывод - он исторический - и я подозреваю, что у вас были проблемы с памятью, поскольку он показывает историю pi / po (страница пространства подкачки в / paging space pageout)

Другими интересными столбцами являются столбцы fr / sr:

  • fr: страницы, освобожденные lrud (наименее недавно использованный демон, также известный как page stealer)
  • sr: страницы, отсканированные / найденные lrud в поисках «старая» страница
  • sr / fr: ratio, которое выражает, сколько страниц необходимо «просканировать», чтобы освободить 1

Что я считаю беспокоящим, так это приведенные здесь значения pi / po - и полностью не соответствуют данным от других команд - здесь также нет времени безотказной работы, поэтому трудно понять, для чего «тест» сгенерировал эти числа.

  • pi: страница пространства подкачки в (т. Е. Чтение памяти приложения из пространства подкачки)
  • po: захват памяти и запись памяти приложения (также известной как рабочая) в пространство подкачки - только рабочая память переходит в / из пространства подкачки

В вашей презентации вы показываете pi = 22 и po = 7.Это означает, что в среднем система считывала информацию из пространства подкачки (после того, как она была записана) в 3 раза чаще, чем записывала данные. Это указывает на голодную систему, потому что данные считываются (pi), а затем снова украдены (sr / fr) до того, как они когда-либо были затронуты (упоминается также как используется) - или считываются и удаляются снова, прежде чем приложение `` ожидает '' их. когда-либо был шанс получить к нему доступ.

Короче говоря, представленные данные не «синхронизированы» с «болевыми» моментами - хотя это может объяснить, почему только 2,2% вашей памяти теперь используется для кэширования (это может быть даже «вычислительная система, или загруженные программы»). ).

Что касается vmstat , я также предлагаю флаги -I (заглавная: i, которая добавляет 'fi' и 'fo' - действия fileIn и fileOut) и -w (широкие), чтобы числа были лучше размещать под текстовыми заголовками.

++++ конец комментария

Итак, давайте посмотрим отрывок с использованием -P (просмотр процесса)

# svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB | head -15 

    Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
14614630 httpd             21.5     0.06        0     21.5
11272246 httpd             21.4     0.06        0     21.4
12779758 httpd             21.2     0.06        0     21.2
17760476 httpd             20.9     0.06        0     20.9
11796712 httpd             20.8     0.06        0     20.8
17039454 httpd             20.6     0.06        0     20.6
11862240 httpd             20.6     0.06        0     20.6
14680090 httpd             20.5     0.06        0     20.5
10747970 httpd             20.5     0.06        0     20.5
11141286 httpd             20.5     0.06        0     20.5
 4718766 mysqld            13.6     0.02        0     13.6

Если вы не являетесь пользователем root, вы видите только команды в своей среде.

$ svmon -P -O filtertype=working,segment=off,filtercat=exclusive,unit=MB
Unit: MB

-------------------------------------------------------------------------------
     Pid Command          Inuse      Pin     Pgsp  Virtual
 5505172 svmon             10.7     0.19     0.44     11.4
 6553826 ksh               0.57     0.02        0     0.57
 9175288 ksh               0.55     0.02        0     0.55
12910710 sshd              0.55     0.02        0     0.55
15204356 sshd              0.52     0.02        0     0.52
12779760 head              0.18     0.02        0     0.18

Возможно, вы захотите посмотреть на конкретную команду - так что переключитесь обратно на root, чтобы посмотреть httpd

Сводка:

svmon -C httpd -O filtertype=working,segment=off,filtercat=exclusive,unit=MB 
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               227.44     0.69        0   227.44

Подробности: отрывок

    # svmon -C httpd -O filtertype=working,segment=category,filtercat=exclusive,unit=MB >
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
httpd                               230.62     0.81        0   230.62

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                    230.62     0.81        0   230.62

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  81a203         3 work working storage              m   24.6     0    0    24.6
                   parent=883990
  8b82d7         3 work working storage              m   18.8     0    0    18.8
                   parent=834226
  8b9d37         3 work working storage              m   18.2     0    0    18.2
                   parent=884fb0
  8915f2         f work shared library data          m   2.00     0    0    2.00
                   parent=898373
  89abb3         f work shared library data          m   2.00     0    0    2.00
                   parent=84b9a9
  824ea4         f work shared library data          m   2.00     0    0    2.00

Это плохо показывает 'сегмент = категория', так что теперь с помощью более простой команды - tail - и покажите сводку и детали каждого типа «сегмента» памяти - но по-прежнему только «рабочую» память (иначе кэширование)

# svmon -C tail -O filtertype=working,segment=category,unit=MB                    
Unit: MB
===============================================================================
Command                              Inuse      Pin     Pgsp  Virtual
tail                                  82.5     52.6     5.12     90.6

...............................................................................
SYSTEM segments                      Inuse      Pin     Pgsp  Virtual
                                      34.1     33.1     2.38     35.8

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
   10002         0 work kernel segment               m   34.1  33.1 2.38    35.8

...............................................................................
EXCLUSIVE segments                   Inuse      Pin     Pgsp  Virtual
                                      0.18     0.02        0     0.18

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
  88b4f1         f work working storage             sm   0.09     0    0    0.09
  82d005         2 work process private             sm   0.07  0.02    0    0.07
  8e0c9c         3 work working storage             sm   0.02     0    0    0.02

...............................................................................
SHARED segments                      Inuse      Pin     Pgsp  Virtual
                                      48.2     19.5     2.75     54.6

    Vsid      Esid Type Description              PSize  Inuse   Pin Pgsp Virtual
    9000         d work shared library text          m   48.2  19.5 2.75    54.6
0
27.01.2020, 20:54

nmon, затем нажмите «m», чтобы быстро показать вам несколько больших применений памяти

ipcs -am

Общая память, используемая многими приложениями, такими как DB2 и Oracle -, проверьте размер SEGSZ с помощью команды ipcs -am. В столбце «Владелец» обычно указано, для чего он используется, например, пользователь oracle для SGA или db2inst1 для буферного кэша DB2.

Тогда все зависит от процессов, и это становится сложным. Все процессы, выполняющие один и тот же программный файл, будут совместно использовать кодовые страницы только для чтения -. Они также могут совместно использовать некоторые или почти все данные и страницы sack, если процессы были запущены общим процессом, который затем разветвился, например, как RDBMS и такие вещи, как Apache. Это также верно для десятков библиотек, которые также нужны процессам и в значительной степени невидимы для нас.

Из-за этого неизвестного совместного использования часто случается так, что если вы суммируете всю память всех процессов, очевидно, что она намного больше, чем память.

Если вы используете nmon, затем «t» для основных процессов, а затем «4», чтобы упорядочить размер процесса, вы увидите память процесса.

  • Размер в КБ = размер файла программы на диске.
  • Размер резидентного набора = размер памяти (, за исключением страниц, все еще находящихся в файловой системе (, таких как код )и некоторые части на дисках подкачки )».
  • Столбец ResText содержит кодовые страницы резидентного набора
  • Столбец ResData — это данные и страницы стека резидентного набора
0
27.01.2020, 20:54

Теги

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