Как измерить общий объем памяти, используемый процессами пользовательского пространства в Linux?

Как я использую Focusrite 6i6, я использую разъем/альса в качестве бэкэнда и подключаю импульсный звук в разъем для воспроизведения аудио из приложений, которые не поддерживают разъем на самом деле.

Все входные/выходные порты полностью настраиваются в alsamixer. Это оборудование было разработано с очень гибким аппаратным микшером, управляемым программным обеспечением, и хотя Focusrite не поддерживает linux, кто-то придумал, как связаться с устройством и реализовать эту функциональность с помощью драйвера alsa от Scarlett 6i6.

На данный момент я вижу 12 портов воспроизведения на Scarlett и 6 портов захвата. Порты захвата настраиваются в alsamixer, хотя они могут выстраиваться в линию до четырех аналоговых входов + два входа канала SPDIF, пользователь может делать то, что захочет. Порты воспроизведения, а также монитор и выходы для наушников также полностью настраиваются через эльзамикшер (т.е. вы можете установить порты 7,8 и 11,12 для воспроизведения через монитор в качестве стереомикса и установить порты 1,2 и 3,4 для воспроизведения через наушники в качестве другого стереомикса). Pulseaudio воспроизводит нормальные звуки системы обратно плавно через интерфейс разъема, хотя Scarlett даже не появляется для вывода через Pulseaudio.

Я не уверен, как alsa работает со стерео и моно каналами, но в разъеме естественно думать о стерео канале, состоящем из двух моно каналов. Я не уверен, работает ли alsa таким же образом, но я ожидаю, что вам придется микшировать входные каналы в стерео самостоятельно. Я абсолютно рекомендую использовать и управлять этим аудиоинтерфейсом на linux с помощью разъёма с бэкэндом и альсамикшером, так как устройство будет почти калечить без контроля над функциями аппаратного микшера.

4
16.04.2018, 09:13
2 ответа

Использованиеsmemдля отображения общего объема всей пользовательской памяти, без подкачки и без двойного подсчета общей памяти:

sudo smem -c pss -t | tail -1

Вывод в моей системе:

4119846

Разворачивание этого:

  • -c pssвыбирает столбец, в данном случае PSS . Изman smem:

          smem reports physical memory usage, taking shared memory  pages
          into  account.   Unshared memory is reported as the USS (Unique
          Set Size).  Shared memory is divided evenly among the processes
          sharing   that  memory.   The  unshared  memory  (USS)  plus  a
          process's proportion of shared memory is reported  as  the  PSS
          (Proportional Set Size).  The USS and PSS only include physical
          memory usage.  They do not include memory that has been swapped
          out to disk.
    
    • -tпоказывает общий или сумму всех PSS, использованных в конце, а tail -1отсекает предыдущие данные.

Чтобы показать только общую неразделенную пользовательскую память, замените -c pssна-c uss:

sudo smem -c uss -t | tail -1

Выход:

 3874356 

Обратите внимание, что приведенное выше общее количество PSS более или менее совпадает с числом, показанным в строке #5, столбце #2 здесь:

smem -w

Выход:

Area                           Used      Cache   Noncache 
firmware/hardware                 0          0          0 
kernel image                      0          0          0 
kernel dynamic memory       1367712    1115708     252004 
userspace memory            4112112     419884    3692228 
free memory                  570060     570060          0 
3
27.01.2020, 20:59

Это один -лайнер, который я использую, показывает, какой процесс использует, сколько Swap и PID:

for file in /proc/*/status;
do
    awk '/VmSwap|Tgid|Name/ {printf "%s %s %s", $2, $3, $4} END { print "" }' "$file";
done | sort -k 3 -n -r | head -20

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

0
27.01.2020, 20:59

Теги

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