Несоответствие между физической памятью и файлом /proc/meminfo

В качестве вариации сказанного:

#!/bin/bash

array1=('array1 string1' 'array1 string2')
array2=('array2 string1' 'array2 string2')
array_names=('array1' 'array2')

for (( i=0; i<${#array_names[@]}; i++ )); do

    declare -n arr="${array_names[i]}"

    for (( j=0; j<${#arr[@]}; j++ )); do
        echo "${arr[j]}"
    done

done

Доступ к элементам по индексу вместо этого

3
16.11.2019, 23:03
1 ответ

Объем памяти в модулях DIMM измеряется степенью двойки, поэтому заявленный объем ОЗУ «128 гигабайт -что-то» составляет 128 ГиБ, что составляет 134 217 728 киБ./proc/meminfoтакже измеряет память в степени двойки, поэтому MemTotalзначение 131 927 808 можно сравнить со 134 217 728 и оно безопасно меньше.

MemTotal— это общая установленная физическая память за вычетом того, что зарезервировано системной прошивкой и двоичным файлом ядра. Ваш загрузочный журнал должен содержать строку вида

... [    0.000000] Memory: 32784756K/33435864K available (10252K kernel code, 1243K rwdata, 3324K rodata, 1584K init, 2280K bss, 651108K reserved, 0K cma-reserved)

который точно укажет, сколько зарезервировано системой (цифра «зарезервировано» )и двоичный файл ядра (цифра «код ядра» ).

11
27.01.2020, 21:15

Теги

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