LINUX.ORG.RU

[linuxatemyram] Куда пропала оперативная память?


0

1

Есть некая система, выполняющая у меня роль сервера. Пару дней назад установил туда новые планки оперативной памяти (всего 7 Гб). Во время установки и тестирования памяти к системе подключил видеокарту (GF7300 с 256 Мб памяти) с монитором. По завершению тестирования видеокарту снял, а сервер отнес на его рабочее место.

Собственно, в чем вопрос. В статистике - http://rghost.ru/12835601 - после снятия видеокарты обнаружилась пропажа приличного объема доступной системе оперативной памяти. В логах при этом:

Jun 27 21:25:23 kernel: [    0.000000] Memory: 7134128k/7864320k available (4965k kernel code, 524760k absent, 204556k reserved, 1959k data, 452k init)


Jun 27 21:42:29 kernel: [    0.000000] Memory: 6876080k/7602176k available (4965k kernel code, 524760k absent, 200460k reserved, 1959k data, 452k init)

Соответственно, первая запись - с картой, вторая - без. Я еще могу понять изменение цифры после дроби - общее адресное пространство системной и видеопамяти и все такое (7864320-7602176=262144=256М). Но почему отключение карты влияет на размер доступной системе памяти? Причем, 7134128-6876080=258048=252М (еще и reserved уменьшился)

★★★★★

>Но почему отключение карты влияет на размер доступной системе памяти?

потому что оператива резервируется для встроенной карты. причем по умолчанию - нехило. ЕМНИП в BIOS можно уменьшить количество памяти, которая будет жрать встроенное видео - один хрен, если на сервер консоль, видяхе эта память ни к чему

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

>ЕМНИП в BIOS можно уменьшить количество памяти, которая будет жрать встроенное видео

А если нет в биосе такой настройки, как-то ещё можно уменьшить? У меня видеокарта intel, «Memory: 1018228k/1038024k available». Хочу увеличить первое число.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

>как-то ещё можно уменьшить

хз. погугли в сторону параметров ядерного модуля intel, но не факт что там будет что-то подобное

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Да, он у меня так постоянно работает. Да и не только он - есть еще несколько машин без видеокарт.

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

эм. Я или дурак, или слоупок: покажи мне мать, которая не будет пищать при загрузке, если в ней нет ни встроенной ни внешней видяхи. Embedded и не x86-совместимые не считаются, естественно...

Pinkbyte ★★★★★
()
Ответ на: комментарий от YAR

не, ты не понял. Мать пищит и все, хоть ты тресни. Halt on: no errors - это чтобы биос не задавал вопросов, когда не найдена клавиатура или флоповод(на старых компах). А если нет важной(по мнению матери) части - отсутствует оперативка, проц или(внимание!) видео - то мать будет просто пищать и не загрузиться. Вот мне и интересно - где ж такие матери, которые наконец-то перестали считать видеокарту обязательной(на серверах она как раз необязательна)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Два года назад на десктоп водрузил debian и вынул видюху. встроенной не было. грузился моментально. в биосе не менял ничего относительно этого. Даже не подумал, что он не загрузится.

uspen ★★★★★
()
Ответ на: комментарий от Pinkbyte

> то мать будет просто пищать и не загрузиться.

Как видишь, это не везде так

Вот мне и интересно - где ж такие матери, которые наконец-то перестали считать видеокарту обязательной


Может тебе просто попался неудачный экземпляр?

YAR ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

> которые наконец-то

Этот сервер начинался с железки на AMD K6-2 и там, как ни странно, тоже не было видеокарты

Мало того, один из моих компиков - AMD 5x86 133 MHz / 20 Mb RAM - http://rghost.ru/12849381 - работает именно в таком виде - как видишь, видеокарта там тоже отсутствует. И ничего, запускается. Про писк не знаю.

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

А, красная хрень на фото - звуковая карта с чехлом из фольги :) Рядом - сетевая

YAR ★★★★★
() автор топика
Ответ на: комментарий от aidaho

когда я пришел на новую работу, у нас стоял роутер, на котором гордо было наклеено: «максимальная пропускная способность - 60 Мб/сек». Как выяснилось, внутри - Pentium 100Mhz, 16 Mb RAM. На борту - Gentus Linux с ядром 2.2.25.

Pinkbyte ★★★★★
()
Ответ на: комментарий от aidaho

Живет под крышей дома и работает с парой уличных микрофонов, через nc звуковой поток с arecord отправляется на другую машину (сабжевый сервер), где а) сжимается во flac (сама машина, в принципе, может с первым-вторым уровнем сжатия во flac'e отправлять поток, но мне это не нужно), б) через ffserver доступно для прослушивания с машин сети.

YAR ★★★★★
() автор топика
Ответ на: Я не знаю, от zhuzha

Ну, сейчас вот как раз буду ставить новые диски, могу видеокарту подкинуть. Просто хотел до этого момента уже разобраться с проблемой, чтобы больше его не дергать

YAR ★★★★★
() автор топика

Вот снова поставил видеокарту

/var/log/messages:Jun 29 21:24:12 kernel: [    0.000000] Memory: 7133748k/7864320k available (5207k kernel code, 524760k absent, 204840k reserved, 2038k data, 412k init)
free -k
             total       used       free     shared    buffers     cached
Mem:       7138368    7091624      46744          0      30432    6081916
-/+ buffers/cache:     979276    6159092
Swap:      2097144          0    2097144

YAR ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

ХМ, без видюхи матери обычно пищат, да. Но потом всё равно загружаются.

lyset ★★★
()
Ответ на: комментарий от vitruss

почему ты первый разумный человек в этом треде, который это попросил?

//риторика

tazhate ★★★★★
()

меня опередили. lspci в студию!

tazhate ★★★★★
()
Ответ на: комментарий от vitruss
lspci 
00:00.0 RAM memory: nVidia Corporation MCP55 Memory Controller (rev a2)
00:01.0 ISA bridge: nVidia Corporation MCP55 LPC Bridge (rev a3)
00:01.1 SMBus: nVidia Corporation MCP55 SMBus (rev a3)
00:02.0 USB Controller: nVidia Corporation MCP55 USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation MCP55 USB Controller (rev a2)
00:04.0 IDE interface: nVidia Corporation MCP55 IDE (rev a1)
00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:05.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3)
00:06.0 PCI bridge: nVidia Corporation MCP55 PCI bridge (rev a2)
00:06.1 Audio device: nVidia Corporation MCP55 High Definition Audio (rev a2)
00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor HyperTransport Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Miscellaneous Control
00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link Control
01:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)
01:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

/me закончил возню с дисками, вытащил видео, пронаблюдал уменьшение размера памяти и пошел спать

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

Вот что у меня:

[    0.000000] Memory: 8112960k/9175040k available (5815k kernel code, 790428k absent, 271652k reserved, 2516k data, 576k init)
free -m пишет 7987. Правда странно. Должно быть 8 гигов.

vitruss ★★★★★
()
Ответ на: комментарий от YAR

Там нет встроенного видео

BIOS все равно резервирует память, как если бы была. Потому что код так написан. Такова моя теория.

Deleted
()
Ответ на: комментарий от i-rinat
мало памяти> grep e820 dmesg
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[    0.000000]  BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000dfff0000 (usable)
[    0.000000]  BIOS-e820: 00000000dfff0000 - 00000000dfff3000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000dfff3000 - 00000000e0000000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000f0000000 - 00000000f8000000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
[    0.000000]  BIOS-e820: 0000000100000000 - 00000001d0000000 (usable)
[    0.000000] e820 update range: 00000000e0000000 - 0000000100000000 (usable) ==> (reserved)
[    0.000000] e820 update range: 0000000000001000 - 0000000000006000 (usable) ==> (reserved)
много памяти> zgrep e820 dmesg.1.gz 
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
[    0.000000]  BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000dfff0000 (usable)
[    0.000000]  BIOS-e820: 00000000dfff0000 - 00000000dfff3000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000dfff3000 - 00000000e0000000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000f0000000 - 00000000f8000000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
[    0.000000]  BIOS-e820: 0000000100000000 - 00000001e0000000 (usable)
[    0.000000] e820 update range: 00000000e0000000 - 0000000100000000 (usable) ==> (reserved)
[    0.000000] e820 update range: 0000000000001000 - 0000000000006000 (usable) ==> (reserved)
[    0.000000] Aperture pointing to e820 RAM. Ignoring.
YAR ★★★★★
() автор топика
Ответ на: комментарий от i-rinat
grep -i aperture dmesg{,.0}
dmesg:[    0.000000] Checking aperture...
dmesg:[    0.000000] Node 0: aperture @ 6abe000000 size 32 MB
dmesg:[    0.000000] Aperture beyond 4GB. Ignoring.
dmesg:[    0.000000] Your BIOS doesn't leave a aperture memory hole
dmesg:[    0.000000] Mapping aperture over 65536 KB of RAM @ 20000000
dmesg:[    0.967199] PCI-DMA: aperture base @ 20000000 size 65536 KB
dmesg:[    0.967205] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture
dmesg.0:[    0.000000] Checking aperture...
dmesg.0:[    0.000000] Node 0: aperture @ 20000000 size 32 MB
dmesg.0:[    0.000000] Aperture pointing to e820 RAM. Ignoring.
dmesg.0:[    0.000000] Your BIOS doesn't leave a aperture memory hole
dmesg.0:[    0.000000] Mapping aperture over 65536 KB of RAM @ 20000000
dmesg.0:[    0.985606] PCI-DMA: aperture base @ 20000000 size 65536 KB
dmesg.0:[    0.985684] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture

dmesg.0 == dmesg.1.gz

YAR ★★★★★
() автор топика
Ответ на: комментарий от YAR

Могу предположить, что BIOS резервирует память для своих нужд и сообщает об этом в результатах вызова e820. При подключеннии видеокарты её «апертура» ложится на область, помеченную BIOS'ом как зарезервированную и она чудесным образом становится незарезервированной. Эта память всё равно используется для DMA с картой и ядром использоваться ни для чего другого не может, но всё равно учитывается в итоговой сумме.

Правда, судя по логам, это объясняет только разницу в 64 Мб.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.