Узнать тайминги оперативной памяти linux
У меня Ubuntu 11 работает с USB-накопителем на 3,6 ГБ. Система имеет 4 ГБ оперативной памяти и чистый жесткий диск (стирается с помощью инструмента DBAN). Как проверить, нет ли ошибок в моей оперативной памяти? Есть ли гарантированный способ проверить это с помощью какой-нибудь команды Linux? Если нет, было бы здорово узнать почему.
Вы можете использовать memtester после загрузки в Linux. Например, sudo memtester 1024 5 Это должно выделить 1024 МБ памяти и повторить тест 5 раз.
Ubuntu Live CD включает в себя инструмент под названием Memtest86 +, который сделает именно это - протестирует ОЗУ вашего компьютера. Загрузитесь с Ubuntu LiveCD, нажмите и удерживайте Shift клавишу, которая вызовет меню GRUB. Выберите тест памяти
Вам даже не нужно иметь концертный CD. Вы можете просто нажать Shift несколько раз во время запуска Linux, чтобы попасть в то же самое меню.
Установив пакет memtester, вы можете проверить свою систему на наличие ошибок, пока она еще работает. Нет необходимости в перезагрузке, просто запустите это приложение.
Чтобы установить его, откройте терминал и введите:
Затем вы можете использовать его так:
Это должно выделить 1024 МБ памяти и повторить тест 5 раз.
Значит ли это, что тестируется только часть памяти, а остальная часть остается непроверенной? Как я могу убедиться, что вся память проверена?
Проголосовал, но если я что-то пропустил, невозможно провести тщательный тест всей памяти, используя memtester систему, так как система memtester перестает отвечать на запросы (или даже не может требовать полного объема памяти, который вы запрашиваете). Так что я предполагаю, memtester что случай использования - это когда вы пытаетесь протестировать определенную область памяти, используя некоторые продвинутые аргументы, которые я не исследовал. Иначе для сквозного сканирования, UNetbootin которое запускается до загрузки операционной системы и любых пользовательских программ (поэтому проблемы с отзывчивостью становятся спорными).
Я создавал похожий тред раньше, там megabaks советовал грепать /dev/mem, но у меня это не сработало.
В общем, я хочу программу, суть такова: у меня сейчас dmidecode, lshw и т.д. показывают Current speed: 1333MHz, при том, что спеки на процессор указывают максимум в 1066MHz, производитель указывает тоже 1066MHz как максимальные, но установил ппочему-то 1333-модули.
Я, конечно, понимаю, что маркетологи таких крупных корпораций, как dell, лезут не в свои дела, но какого хрена пихать память, которая не будет работать на нужной частоте? Конечно, понятно, какого хрена, но все равно.
А может, все-таки 1333 и есть? Как узнать достоверно? Что, гуглить какой-то ассемблерный говнокод и тратить все выходные на правку@компиляние в надежде, что получится? Я же всего-навсего хочу памяти докупить!11
Ну вот например.
ipeacocks ★★★★★ ( 14.09.13 00:58:24 )
Последнее исправление: ipeacocks 14.09.13 00:58:53 (всего исправлений: 1)
Я же всего-навсего хочу памяти докупить
ээ. открыть и посмотреть какая память стоит не?
Это ты свои три звезды таким тупняком нафлудил? Я же написал, что у меня показывает lshw. У меня в спеках на процессор написано, что максимальная частота памяти - 1066 МГц, а lshw выдает 1333. КАКТАК??777
Лол, еще один. Я знаю, какая стоит. Стоит на 1333МГц. Короче, я не буду третий раз писать, просто подумай головой, в чем дело.
У меня в спеках на процессор написано, что максимальная частота памяти - 1066 МГц, а lshw выдает 1333. КАКТАК??777
Ну и? Память быстрее проца. Что не так-то?
Очень просто. Инфа берется по id слота памяти, а для нее указано, что макс. частота 1366.
Поэтому тебе нужна тулза, которая смотрит данные с шины, а не из БД.
Serial presence detect (SPD) refers to a standardized way to automatically access information about a computer memory module.
но какого хрена пихать память, которая не будет работать на нужной частоте? Конечно, понятно, какого хрена, но все равно.
Кажись понял. Ты считаешь, что если снизить частоту памяти она взорвётся?
все эти утилиты (кстати, пропустили почему-то decode-dimms) показывают очень простую штуку — тупо дамп инфы из spi-ной микросхемки SPD (есть такая фиговина на dimm-модулях). Т.е. состояние контроллера памяти они не отображают.
Щта? Што ты несешь? Я хочу купить память и не хочу переплачивать. Если 1333 поддерживалась бы, то я бы ее и взял. А так смысла нет. Я только что ребутался в мемтест, он показал 1064МГц честных.
Вот вам встречный вопрос.
В самом старшем i7 на данный момент в спеках на оффсайте указана частота 1600. На практике у многих геймеров память работает на частоте 2133, а то и выше. Где она такие процессоры берут, не подскажете?
В спеках пишут то, что работает. Но никто вам не мешает разогнать частоту. В наше время это, зачастую, делает одной строчкой в биосе.
Спасибо, капитан. То, что там не 1333, было ясно сначала. Я спрашивал, как посмотреть.
Что-то лор какой-то уже не торт. Все капитанят и тупят, а додумываешься в конце-концов сам.
Мы воспользуемся утилитами командной строки доступными для большинства Linux дистрибутивов.
Тип памяти и частота
Рассмотрим, как получить информацию об установленных в компьютер модулях оперативной памяти. Воспользуемся командной dmidecode
Используем следующую команду:
В выводе команды будет информация о слотах оперативной памяти. Для каждого слота отображается установленный модуль оперативной памяти, его тип (поле Type ), размер (поле Size ), скорость/частота (поле Speed ) и другая информация.
В зависимости от системы и оборудования не всегда удается получить все данные, поэтому некоторые поля могут быть пустыми или иметь надписи Not provided/Unknown.
Команда free
Команда free очень простая, она выводит информацию о общем количестве оперативной памяти, о количестве занятой и свободной памяти, а также об использовании файла подкачки.
По умолчанию объем памяти выводится в килобайтах. Используя опции, можно выводить объем памяти в других форматах. Некоторые опции:
- -m — в мегабайтах
- -g — в гигабайтах
- -h — автоматически определить формат
Файл /proc/meminfo
Описанные выше команды, в качестве источника информации используют системные файлы из файлов, хранящихся в виртуальной файловой системе /proc . В файле /proc/meminfo содержится информация об использовании памяти. Выведем содержимое файла /proc/meminfo :
Статистика памяти
HighTotal : размер области верхней памяти. Область верхней памяти (highmem) - это вся память, выше (приблизительно) 860 МБ физической ОЗУ. Доступ к этой памяти осуществляется через косвенные механизмы доступа. Здесь может находиться кэш данных.
LowTotal: общий объем памяти без highmem-памяти.
LowFree : объем свободной памяти в нижней области памяти. Это память, к которой ядро может обращаться напрямую. Все структуры данных ядра должны находиться этой области.
SwapTotal : общий физический размер свопинга.
SwapFree : количество свободной памяти в свопинге. Swap - память, которая была выгружена из ОЗУ и временно находится на диске.
Dirty : память, ожидающая записи на диск.
Writeback: память, которая в настоящий момент записывается на диск.
Mapped : отображаемые в память файлы с помощью mmaped, например, библиотеки.
Slab : кеш внутренних структур ядра.
Committed_AS: оценка объема оперативной памяти, необходимой для 99,99% гарантии того, что для текущей нагрузки системы не будет OOM (out of memory, нехватки памяти). Обычно ядро позволяет выделять больше памяти, чем доступно в системе (overcommit). Например, при выделении 1 ГБ памяти через malloc, на самом деле ничего не происходит. Только когда вы начнете ИСПОЛЬЗОВАТЬ эту память, вам выделят столько памяти, сколько вы будете использовать. То есть вы берете ипотеку и надеетесь, что банк не разорится. Также могут быть случаи, когда вы используете mmap файл, который используется только при записи в него, и вы получаете приватную копию этих данных. Хотя обычно они разделяются между процессами. Committed_AS - это приблизительная оценка того, сколько памяти / свопинга вам понадобится в худшем случае.
PageTables : объем памяти, выделенный для таблиц страниц.
ReverseMaps : количество выполненных обратных отображений.
VmallocTotal : общий размер области памяти vmalloc.
VmallocUsed : используемая память vmalloc.
VmallocChunk : самый большой свободный непрерывный блок в области vmalloc.
Оценка использования ресурсов, особенно потребления памяти, намного сложнее, чем может показаться на первый взгляд. Неиспользуемый ресурс - это ресурс, потраченный впустую. Поэтому ядро старается использовать столько оперативной памяти, сколько может для кэширования информации с локальных и удаленных файловых систем и дисков. Кэш наполняется постепенно по мере выполнения операций чтения и записи, пытаясь сохранить данные, хранящиеся в ОЗУ, как можно более актуальными для процессов, запущенных в системе. При наличии свободной оперативной памяти будет выполняться больше кэширования и, следовательно, будет "потребляться" больше памяти. Однако на самом деле это не считается использованием ресурсов, поскольку эта память с кэшем доступна для процессов в любой момент. Кэш освобождается не при завершении процесса (возможно, появится другой процесс, которому нужны те же данные), а по запросу.
При запуске процесса, требующему для работы много памяти, ядро ОС освобождает память, в которой хранились кэшированные данные, и отдает ее новому процессу.
Обычно системной информации о памяти можно доверять, но даже она может быть легко истолкована неверно. Например, посмотрим на top.
Что может сбить с толку, так это буфер и кэш:
Можно увидеть, что используется 16124948K, но почти все эти 15 ГБ используются под кэш и буфер, и в случае, если память потребуется другому процессу, то она будет немедленно освобождена.
Система использует 2448184 КБ (= 2 ГБ) для приложений / процессов, при этом потенциально свободно 13 ГБ, используемой для буферизации и кэширования. Для оценки потребления памяти процессом, вы должны использовать команду free до, во время и после запуска процесса, проделывая это несколько раз, чтобы получить среднее значение оцениваемого показателя.
Для получения информации о потреблении памяти конкретного процесса можно использовать следующие команды:
Свободная и занятая оперативная память
Для получения информации о количестве свободной и занятой оперативной памяти в Linux можно использовать различные утилиты и команды. Рассмотрим несколько распространенных способов.
Команда top
top — это утилита командной строки, которая используется для мониторинга процессов и используемых ресурсов компьютера.
Запуск утилиты top :
В заголовке выводится информация об использованной оперативной памяти.
Основные показатели
MemTotal : доступный объем оперативной памяти (физическая память за вычетом нескольких зарезервированных битов и бинарного кода ядра).
MemFree : Сумма LowFree и HighFree.
MemShared : 0; приведен здесь из соображений совместимости и всегда равен нулю.
Buffers : память в буферном кеше. В настоящее время бесполезен в качестве метрики. Это временное хранилище для страниц, ожидающих записи на диск. Не должно быть слишком большим (обычно около 20 МБ).
Cached : память в кэше страниц за вычетом SwapCache.
SwapCache: память, которая когда-то была выгружена в своп, но потом загружена обратно и все еще находится в файле подкачки. Если будет необходимость в выделении памяти, то эту память не нужно будет выгружать повторно, так как она уже находится в свопе. Это экономит операции ввода-вывода.
Прочие показатели
Cтраницы кэша делятся на "активные" и "неактивные". Идея заключается в том, что если вам нужна память и ее можно взять из кэша, то она будет забрана из неактивных страниц, поскольку ожидается, что она больше не будет использоваться. Подсистема виртуальной памяти постоянно отслеживает, какая память используется, и отмечает это в таблице страниц (pagetable) специальным битом.
Active : память, которая использовалась совсем недавно. Обычно не освобождается без крайней необходимости.
Inact_dirty : "грязная" означает, что "необходима запись на диск или в своп". Для ее освобождения требуется больше работы. Здесь могут быть файлы, которые еще не записаны на диск. Операции записи на диск происходят не сразу, чтобы не снижать производительность ввода-вывода. Например, если вы пишете логи, то, возможно, лучше подождать, пока у вас будет готова полная запись лога, прежде чем отправлять ее на диск.
Inact_clean: память, которую можно легко освободить. Ядро пытается сохранить немного чистых страниц, чтобы было проще "дышать".
Команда vmstat
Команда vmstat выводит различную статистику по использованию памяти. Используя ключ -s можно вывести подробную статистику в табличном виде.
Заключение
Мы рассмотрели различные способы для просмотра информации о доступной и занятой оперативной памяти, а также показали, как вывести информацию об установленных модулях оперативной памяти.
Для отслеживания использования ресурсов компьютера существует множество графических программ. Найти их можно в нашем каталоге программ для Linux в разделе Система/Мониторинг.
Подскажите, пожалуйста, прогу/команду, которая мне выведет инфу по ОЗУ, а именно:
1. Какой вид, частота, ну там DDR, PC &etc
2. Сколько слотов еще свободно
3. И максимально сколько по Gb'там держит плата ноута
4. И наверно еще спрошу, какой фирмы порекомендовали бы ОЗУ купить (для hp-ноута)?
lshw кое-что пишет:
Попробуй программу hardinfo
и еще в копилку вопросов: какими средствами можно считать таблицы SPD планок?
3. смотри спецификации контроллера памяти (процессора или северника), определи тип памяти (ddr2 или ddr3) и умножь на количество слотов
4. если будешь добавлять к имеющейся, то выбирай по минимальным таймингам для требуемой частоты. Если пару новых, тогда от любого известного производителя.
Radius ★★★★ ( 13.03.13 14:59:58 )
Последнее исправление: Radius 13.03.13 15:01:28 (всего исправлений: 1)
Я как раз на выходных купил себе вторую планку памяти в HP ноут. И без всяких прог: просто вынул первую, пошел с ней в магаз и купил «такую же».
Сколько слотов свободно, наверное, можно как-то узнать, но проще узнать сколько слотов занято и на сайте посмотреть сколько всего.
Максимально плата держит, скорее всего, сколько угодно. Если только это не древность какая-нибудь. Для прикладных задач в любом случае хватит.
А, да, «какой фирмы». Любой. Все равно никто не знает какая между ними разница. На брак где угодно можно напороться.
У меня как-то вообще урезанная информация
WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
так, я конечно знаю, большая и меньшая планка - desktop и laptop , но всеж или такое пару лет назад было?
как понял, меня интересует PC3-12800 (DDR3 1600 МГц)
Тебе надо SO-DIMM. Ты наверное не в том разделе смотришь.
Так ребят, опять помощь нужна, т.к. у меня:
description: SODIMM DDR3 Synchronous 1600 MHz (0,6 ns)
мне по этому параметру глядеть
Частота функционирования до 1600 МГц
большая и меньшая планка - desktop и laptop
Не факт. У меня, например, на miniITX-плате стоит «ноутбучная» планка :)
3. И максимально сколько по Gb'там держит плата ноута
3. смотри спецификации контроллера памяти (процессора или северника), определи тип памяти (ddr2 или ddr3) и умножь на количество слотов
Честно, не очень понял( вот н-р если по lshw исходить:
Память
6 ГБ DDR3Максимальный объем памяти
Поддержка до 8 ГБ памяти DDR3Слоты памяти
2 доступных пользователю слота
Стоит ли этому пункту довериться?
или есть так сказать вариант/возможность и больше память держать?
lshw же тебе показал 2 из 2 занятых слота, по 2 гб. Можешь заменить на 2 по 4 гб, получится 8, но я лично не понимаю к чему эта гонка за гигабайтами на ноутбуке.
2 доступных пользователю слота
Стоит ли этому пункту довериться?
попробуй посмотри dmidecode | grep DIMM сколько выдаст :)
Не до конца раскрыл твой вопрос:
- ddr3 максимум бывают 4 гб
- чипсет твой поддерживает больше каналов памяти, но остальные слоты для подключения памяти не разведены на плате твоего ноутбука (скорее всего, иначе это монстр какой-то)
- кстати вот этот параметр в скобках в наносекундах - это видимо один из показателей латентности памяти, он напрямую связан с таймингами (к сожалению примеры расчета привести затрудняюсь); следует выбирать память для совместной работы, у которой этот показатель совпадает, но для достижения оптимального результата нужно сравнивать таблицы SPD планок и выбирать идентичные
Radius ★★★★ ( 14.03.13 03:01:35 )
Последнее исправление: Radius 14.03.13 03:04:09 (всего исправлений: 2)
не понимаю к чему эта гонка за гигабайтами на ноутбуке
да по сути ни к чему, просто идея такова поставить макс сколько держит и забыть, ну и просто посмотрел и как оказалось она не так и дорога
2 доступных пользователю слота
Стоит ли этому пункту довериться?
Я про другое имел в виду)
это случайно не инфа ли про то сколько все же может поднять памяти?
Ой пардон.. я просто привык так думать и на автомате ляпнул. :) До 32 гб бывают планки, но это по-моему сущая жесть.
т.е. вроде как даже 32 можно подключить. Но возможно мы не учитываем какие-то нюансы.
надо же, я думал еще и плата (материнка) здесь в первую очередь играет, по поддерживаемым модулям памяти (в ноутах наверно чуть по другому)
возможно мы не учитываем какие-то нюансы
да, возможно. у меня еще на ноуте в BIOS строчка: Factory installed OS , не знаю вот тут, если на вин отразится еще ладно, а если на BIOS, вот это плохо((
А кстати, еще, у ноутов нет такой темы 2канальная поддержка памяти (как-то так)?
надо что бы одинаковой частоты и вроде бы одинаковым размером памяти были эти планки
Раньше контроллер памяти у интела был в северном мосту на плате, но на новых платформах он переехал в процессор вместе с графикой и pci-e хостом. От платы в таком случае зависит только количество распаянных слотов.
По поводу нюансов я как раз и думал о каких-то ограничениях в биосе и т.п., но при большой желании это можно обойти, т.к. это не ограничения «дизайна платформы».
А вот мне на имеющихся у меня на ноуте где тайминг глянуть можно?
и так если исходить из имеющейся инфы, с каким таймингом лучше приобретать?
Файловая система /proc — это виртуальная файловая система. Она не хранится на диске, а создается в памяти и используется для предоставления информации о системе (первоначально о процессах, отсюда и название).
Из /proc/meminfo можно получить информацию о свободной памяти, об используемой (и физической, и swap), а также о разделяемой (shared memory) и буферах.
Подробно файловая система /proc описана в man.
Сначала посмотрим показатели, на которые следует обращать внимание в первую очередь.
Команда htop
Утилита htop, также как и top, используется для мониторинга ресурсов и процессов.
Для установки утилиты htop в Ubuntu Linux (Linux Mint и других Ubuntu/Debian-дистрибутивах) выполните команду:
Запуск утилиты htop :
Читайте также: