Почему доступная память меньше, чем свободная память в команде free?

Проблема в том, что || связывается сильнее, чем ; , поэтому ваша первая строка состоит из двух команд: первая - составная команда: ls || ls || echo , а второй - просто exit 3 . Как упоминалось в комментарии meuh, вы должны написать

ls a || ls > /dev/null || { echo "both command fails"; exit 3; }
echo 5 # not showed up
4
26.04.2018, 14:35
2 ответа

Доступная память — это всего лишь оценка того, как память может реально использоваться в вашей системе для загрузки программ, поэтому это не точное значение .

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

Из гитхаба:

MemAvailable: An estimate of how much memory is available for starting new applications, without swapping. Calculated from MemFree, SReclaimable, the size of the file LRU lists, and the low watermarks in each zone. The estimate takes into account that the system needs some page cache to function well, and that not all reclaimable slab will be reclaimable, due to items being in use. The impact of those factors will vary from system to system. To get a more detailed answer, you will need to post the contents of your /proc/meminfo.

2
27.01.2020, 21:01

Если вы читали справочную страницу CentOS 7 в free, там объясняется, что поле availableучитывает, что не вся восстанавливаемая память будет освобождена из-за того, что некоторые элементы используются (память, доступная ядру, например ), в отличие от кеша и свободных полей. Я считаю, что это может быть причиной различий, которые вы видите.

available: Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the cache or free fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as free)

2
27.01.2020, 21:01

Теги

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