Команда top

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Iisus
Сообщения: 214
ОС: Ubuntu 19.04

Команда top

Сообщение Iisus »

Добрый день! В каких еденицах показывается занимаемая физическая память? mb?
Почему виртуальная память это swap?
почему занимает виртуальную память программы ведь физической хватает?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Учиться и еще раз учиться!
https://vk.com/orenburgit
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Команда top

Сообщение azsx »

Iisus писал:
24.12.2019 22:50
В каких еденицах показывается занимаемая физическая память? mb?
Почему виртуальная память это swap?
почему занимает виртуальную память программы ведь физической хватает?
1. про единицы памяти
man top
потом вводите
/MiB
находите
MiB = mebibyte = 1024 KiB = 1,048,576 bytes
2. вопрос не понял.
3. вопрос надо просто принять как должное, что ос может держать память зарезервированной или сбросить в виртуальную память неактивные сейчас процессы. То есть не понимаю в чём проблема.
У меня так

Shell

top - 10:29:17 up 27 days, 18:44, 16 users, load average: 1.13, 1.09, 1.06
Tasks: 221 total, 1 running, 220 sleeping, 0 stopped, 0 zombie
%Cpu(s): 50.3 us, 0.5 sy, 0.0 ni, 48.5 id, 0.7 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7870.9 total, 72.0 free, 3684.8 used, 4114.1 buff/cache
MiB Swap: 10240.0 total, 9806.0 free, 434.0 used. 3818.6 avail Mem
Спасибо сказали:
Iisus
Сообщения: 214
ОС: Ubuntu 19.04

Re: Команда top

Сообщение Iisus »

1. Просмотрел man top просто написано сколько мегабайт это килобайт а в какаих еденицах стандартно показывает top?
2. что такое виртуальная память? Это то же самое что и swap то есть есть файл не знаю где. swap это вроде файл каторый при не достатке физической памяти в этот файл записываются данные так?
Учиться и еще раз учиться!
https://vk.com/orenburgit
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Команда top

Сообщение azsx »

1. я вам скопировал свой man, там написано сколько байт. Может у вас man другой? Вообще можно и https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B1%D0%B8%D0%B1%D0%B0%D0%B9%D1%82
2. В теории (по старым книжкам) вы правы, но на практике нет.
Спасибо сказали:
Iisus
Сообщения: 214
ОС: Ubuntu 19.04

Re: Команда top

Сообщение Iisus »

большое спасибо, это понятно. Что такое мегабайт байт килобайт и так далее. У меня вопрос в другом в каких еденицах показывает top?
А на практике как?
Учиться и еще раз учиться!
https://vk.com/orenburgit
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Команда top

Сообщение azsx »

Iisus писал:
25.12.2019 06:57
в каких еденицах показывает top?
в MiB :)
Спасибо сказали:
Iisus
Сообщения: 214
ОС: Ubuntu 19.04

Re: Команда top

Сообщение Iisus »

А на практике как?
Учиться и еще раз учиться!
https://vk.com/orenburgit
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21257
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Команда top

Сообщение Bizdelnick »

Iisus писал:
25.12.2019 06:17
что такое виртуальная память? Это то же самое что и swap то есть есть файл не знаю где. swap это вроде файл каторый при не достатке физической памяти в этот файл записываются данные так?
Нет.
azsx писал(а):
25.12.2019 07:23
в MiB
Нет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Команда top

Сообщение azsx »

Bizdelnick писал:
25.12.2019 11:16
в MiB

Нет.
Почему, вот же

Shell

top - 10:29:17 up 27 days, 18:44, 16 users, load average: 1.13, 1.09, 1.06
Tasks: 221 total, 1 running, 220 sleeping, 0 stopped, 0 zombie
%Cpu(s): 50.3 us, 0.5 sy, 0.0 ni, 48.5 id, 0.7 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7870.9 total, 72.0 free, 3684.8 used, 4114.1 buff/cache
MiB Swap: 10240.0 total, 9806.0 free, 434.0 used. 3818.6 avail Mem
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5405
ОС: Gentoo

Re: Команда top

Сообщение /dev/random »

azsx писал(а):
25.12.2019 11:49
Почему, вот же
В этом месте единицы указаны явно. Там, где не указаны, используются KiB.
Iisus писал:
25.12.2019 06:17
что такое виртуальная память? Это то же самое что и swap то есть есть файл не знаю где. swap это вроде файл каторый при не достатке физической памяти в этот файл записываются данные так?
Нет. Счётчик виртуальной памяти измеряет всю размеченную часть адресного пространства процесса, независимо от того, ссылаются ли эти страницы на физическую оперативную память, или нет.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Команда top

Сообщение serzh-z »

Iisus
Память процесса собрана из кусков кода или данных, часть которых просто отображается на файловую систему и часть которых, анонимная память, просто не имеет подобного. Первые, при необходимости, можно просто выбросить из оперативной памяти и загрузить снова, а чтобы такое же можно было провернуть и с анонимной памятью, придумали файл подкачки.
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Команда top

Сообщение azsx »

/dev/random писал:
25.12.2019 13:15
Счётчик виртуальной памяти измеряет всю размеченную часть адресного пространства процесса
но ведь есть механизм, который указывает, что оперативная память быстрая, а на диске медленная. И логика работы, чтобы использовать оперативку. Верно?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5405
ОС: Gentoo

Re: Команда top

Сообщение /dev/random »

azsx писал(а):
25.12.2019 16:03
но ведь есть механизм, который указывает, что оперативная память быстрая, а на диске медленная. И логика работы, чтобы использовать оперативку. Верно?
Здесь нельзя ответить просто "да" или "нет", так как из обоих ответов вы сделаете ложные выводы.

Адресное пространство процесса формируется ядром путём передачи процессору информации о том, каким виртуальным страницам соответствуют физические, размещённые в оперативке (и какие именно), а каким - нет. Процесс может обращаться только к виртуальным страницам, но не напрямую к физическим. При обращении к виртуальной странице запрос переадресуется к физической, если таковая имеется. Если же нет, то процессор приостанавливает процесс и передаёт управление ядру, которое решает, что делать. В простейших случаях оно просто убивает процесс, чтобы не лез, куда не следует. В более сложных случаях оно может что-то загрузить из запрошенного пользователем файла или свопа, что-то выгрузить, чтобы освободить место, или же просто выделить пустую страницу оперативки и прописать её как соответствующую этому адресу (выделение ядром запрошенной памяти не сразу, а при первом обращении, называется "overcommit"), и возобновить процесс с того места, где он остановился. Весь этот механизм называется "виртуальной памятью" (независимо от того, есть ли в системе своп и вообще диск), и работать с памятью программы могут только через него. Прямого доступа к оперативке у них нет.

Ну а счётчик "виртуальной памяти" измеряет суммарный размер страниц виртуального адресного пространства процесса, которые имеют для системы какой-либо смысл, кроме "здесь ничего нет". Это может быть выделенная память, с которой программа работает. Это может быть запрошенная, но ещё не выделенная память. Это может быть запрошенная, выделенная и выгруженная за ненадобностью в своп память. Это может быть кусок отображённого в память файла, страницы которого система должна подгружать в оперативку (и регистрировать как выделенные) при первом обращении. Это может быть диапазон страниц, зарезервированный для того, чтобы выделять там память было невозможно. Это может быть всё, что угодно.
Спасибо сказали: