elseiver: (I do IT)
[personal profile] elseiver
Помните, может быть, я рассказывал про волшебный сервер, с которым мне случайно довелось столкнуться, и чьи вычислительные мощности я пробовал использовать для своих расчетов?
Сегодня я снова на него зашел, чтобы еще кое-чего пересчитать.
Расчеты предполагали работу с достаточно большой БД (40Гб примерно), поэтому я предполагал, что SQL Server 2008 R2, там установленный, эту БД максимально закэширует. Я даже открыл Task Manager, чтобы посмотреть, с какой скоростью он будет загружать данные и поглощать память.
Каково же было моё удивление, когда я увидел, что процесс sqlservr.exe кушает всего 170Мб, и не хочет увеличивать потребление ни на метр. Я проверил, не почудилось ли мне, не Compact-ли это Edition, не приведи господь. Нет. Написал мега-запрос, который читает почти 10% данных из базы, запустил. SQL увеличил потребление до уровня 250Мб и там остался. Если что, у меня на ноуте в idle он больше потребляет.
Стал смотреть дальше, и заметил странное. Сколько бы приложений я не запускал, как бы не загружал сервер, общий уровень загрузки памяти не поднимался выше 14,2Гб (из доступных 32Гб).

Если честно, я такого никогда раньше не видел. Похоже на какое-то квотирование, как будто сервак заточен под Terminal Services и много юзеров, но таких настроек я на нём не нашёл. Есть какие-нибудь идеи, что это вообще может быть?

UPD:

MSSQL doesn't properly report its memory allocation in Task Manager with the default configuration. Evidently Microsoft uses some low level allocation techniques that perform well but do not show up in Task Manager. If you configure it to have a max of 8GB, it will eventually use that 8GB even though you don't see it directly in Task Manager.

You can see it indirectly in Task Manager because the page file usage will go up by the amount of memory you configure for MSSQL. It's kind of like trying to see a black hole. You can't actually see them, but you can figure out they there by the gravitational tug they put on the objects near them. Ok, maybe not.

If you're interested in viewing the actual memory usage of MSSQL, you can get very detailed info by executing DBCC MEMORYSTATUS from SQL Server Management Studio. If you don't care to have that level you detail, you can run perfmon and add the SQLServer:Memory Manager/Total Server Memory(KB) performance counter.

So for your process, rest assured that if you configured MSSQL to have 8GB max and there is 32GB of physical memory available, it will use all 8GB if it has to load that much data from the disk.

Date: 2012-12-11 09:48 am (UTC)
From: [identity profile] dbms.livejournal.com
а ты не смотрел доли cache hit и cache miss? возможно ему вполне хватает небольшого кэша для удовлетворения твоих мега-запросов :)

Date: 2012-12-11 03:36 pm (UTC)
From: [identity profile] torrio.livejournal.com
Не смотрел. По опыту знаю, что такой запрос увеличивает потребление памяти сиквелом примерно на 5Гб.

Date: 2012-12-11 03:58 pm (UTC)
From: [identity profile] dbms.livejournal.com
а сиквел что, вот так запросто динамически отжирает память под запрос до упора, сколько есть в системе?

Date: 2012-12-11 04:16 pm (UTC)
From: [identity profile] torrio.livejournal.com
Ну, в соответствии с конфигурацией памяти. На данном сервере лимит памяти для SQL установлен на 8Гб.

Date: 2012-12-11 08:50 pm (UTC)
From: (Anonymous)
Вероятно, скуль достаточно умный, чтобы понять что память отданная файловому кэшу винды в данном случае эффективней, чем память потраченная на буфферы. Ты в домашних условиях можешь воспроизвести запрос на этих данных и посмотреть расход?

МАО

Date: 2012-12-11 09:00 pm (UTC)
From: [identity profile] torrio.livejournal.com
В домашних условиях и на всех доступных серверах, MS SQL 2008 R2 с этой базой и с этими запросами кушает от 500Мб памяти (без нагрузки вообще, без запросов к базе) до 27Гб (под нагрузкой).

На сервере о котором идёт речь SQL кушает 170-250Мб, но при этом неимоверно много читает с диска (87 терабайт прочитано по счётчику). Т.е., очевидно, вместо кэширования данных, он каждый раз читает их заново...

November 2016

S M T W T F S
  12345
67 89101112
13 141516171819
20212223242526
27282930   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 24th, 2025 12:36 pm
Powered by Dreamwidth Studios