Gilev.ru
Как рассчитать оперативную память MS SQL сервера ?
Сообщений: 6 • Страница 1 из 1
Как рассчитать оперативную память MS SQL сервера ?
Михалевский Andrei » 17 май 2022, 10:42
Здравствуйте. Имеем такую конфигурацию:



— Естественно пользователи жалуются, что производительность низкая. Я полагаю, дело не так в процессоре, сколько в оперативной памяти ? В одних из последних тем, Вячеслав пишет:
Также советую держать памяти на 300 пользователей только серверу 1С более 450 гб.
— Как видно, оперативная память не занята на сервере 1С, а вот MS SQL да, но как мы знаем, он занимает всю память и динамически ею управляет. От того вопрос, а как собственно понять, сколько мне нужно оперативной памяти ну и заодно виртуальных процессоров ? Какие счетчики анализировать, как профессионально подойти к этому ?
— Активных соединений в среднем 450~
PS — можно ли нас добавить в исключение Вашей системы ? Перед созданием темы пишет:

Пришлось под VPN’ом создавать тему. IP адрес 83.69.207.170
Михалевский Andrei Сообщений: 7 Зарегистрирован: 11 май 2022, 10:39
Re: Как рассчитать оперативную память MS SQL сервера ?
Гилёв Вячеслав » 17 май 2022, 11:31
счетчик SQL Server: Memory Manager: Target Server Memory (https://www.mssqltips.com/sqlservertip/6571/perfmon-counters-for-sql-server-memory/#:~:text=Target%20Server%20Memory%20(KB)%20is,and%20would%20like%20to%20reach. )
Порог: Этот счётчик не должен быть, продолжительное время, больше физически значения счетчика SQL Server: Memory Manager: Total Server Memory
Если значения счётчика, продолжительное время, больше чем физическая память, надо увеличивать физическую память. Счетчик показывает требуемый объем ресурсов.
Также счетчик Page Life Expectancy должен быть больше 300 секунд условно. Если значение меньше, это говорит о вымывании кэша и его нехватке (заисключением момента рестарта сервера субд первые 300 секунд).
Гилёв Вячеслав Сообщений: 2727 Зарегистрирован: 11 фев 2013, 15:40 Откуда: Россия, Москва
Re: Как рассчитать оперативную память MS SQL сервера ?
Михалевский Andrei » 17 май 2022, 13:39
Вячеслав, благодарю Вас. Подскажите, правильно ли я понял:
По полосе графика почему-то общая память сервера между 10 и 20. Не понимаю, что он отражает. Хотя его показатель Максимум: 146 501 664, что похоже на правду, относительно моих выделенных 150Gb оперативной памяти:
При этом Память целевого сервера: 146 495 464
Какой вывод можно сделать, что я прям уперся впритык, но пока достаточно значит оперативной памяти или нехватка ? Должен быть какой-то запас ? На сколько ?
А вот с Page Life Expectancy у меня нет проблем, да ? https://i.ibb.co/5r8mGZC/Screenshot-3.png
Михалевский Andrei Сообщений: 7 Зарегистрирован: 11 май 2022, 10:39
Re: Как рассчитать оперативную память MS SQL сервера ?
Гилёв Вячеслав » 17 май 2022, 15:47
недостаточно большой интервал наблюдения для выводов (на этом небольшом отрезке памяти хватает)
ну и масштабируйте правильно шкалу
Гилёв Вячеслав Сообщений: 2727 Зарегистрирован: 11 фев 2013, 15:40 Откуда: Россия, Москва
Re: Как рассчитать оперативную память MS SQL сервера ?
Гилёв Вячеслав » 17 май 2022, 15:48
по результатам теста очень низкая скорость для текущего процессора
но бесплатно аудировать не готовы, только на основе http://www.gilev.ru/virtual/
Гилёв Вячеслав Сообщений: 2727 Зарегистрирован: 11 фев 2013, 15:40 Откуда: Россия, Москва
Re: Как рассчитать оперативную память MS SQL сервера ?
Михалевский Andrei » 17 май 2022, 15:58
Гилёв Вячеслав писал(а): по результатам теста очень низкая скорость для текущего процессора
но бесплатно аудировать не готовы, только на основе http://www.gilev.ru/virtual/
Понял Вас. Благодарю. Я в августе пойду к Вам на курс «Повышение производительности 1С для администраторов»
Свойства сервера (страница «Память»)
Используйте данную страницу для просмотра или изменения параметров памяти сервера. Если параметр Минимальный размер памяти сервера равен 0, а параметр Максимальный размер памяти сервера равен 2 147 483 647 МБ, SQL Server всегда может использовать оптимальный объем памяти, в зависимости от того, сколько памяти в текущий момент использует операционная система и другие приложения. При изменении загрузки компьютера и SQL Server меняется объем выделенной памяти. Ограничить объем динамически выделяемой памяти можно с помощью задания минимального и максимального значений.
Параметры
Минимальный размер памяти сервера (в МБ)
Указывает, что при запуске SQL Server выделяется, по крайней мере, минимальный объем выделенной памяти, и этот объем не уменьшается. Задайте значение в зависимости от объема и активности экземпляра SQL Server. Задавайте для этого параметра оправданное значение, чтобы операционная система не забирала значительный объем памяти у SQL Server , и это не сказывалось на производительности Windows.
Максимальный размер памяти сервера (в МБ)
Максимальный объем памяти, который может использовать SQL Server во время работы. Этому параметру настройки может быть присвоено конкретное значение, если известно, что одновременно с SQL Server будет запущено несколько других приложений; также необходимо гарантировать достаточное количество памяти для этих приложений. Если другие приложения, например веб-серверы или серверы электронной почты, запрашивают память только при необходимости, то не задавайте этот параметр, так как SQL Server освобождает для них память по мере необходимости. Однако некоторые приложения часто используют весь объем памяти, доступный в момент запуска, и не запрашивают ее дополнительно. Если приложение запущено на том же компьютере, на котором запущен SQL Server, задайте такое значение, которое обеспечивает необходимый для приложения объем памяти, не занимаемый SQL Server. Минимальный размер памяти, который можно указать в параметре max server memory , составляет 128 МБ. (64 мегабайт (МБ) для старых 32-разрядных систем.)
Память для создания индекса (в КБ; 0 для использования динамической памяти)
Устанавливает объем памяти (в КБ), который используется во время операции сортировки при создании индекса. Значение по умолчанию, равное 0, соответствует динамическому распределению, которое можно использовать в большинстве случаев без дальнейшей настройки. Кроме того, можно задать значение в диапазоне от 704 до 2 147 483 647.
Значения от 1 до 703 недопустимы. Если введено значение в этом диапазоне, введенное в поле значение заменяется на 704.
Минимальный объем памяти для запроса (в КБ)
Устанавливает объем памяти (в КБ), выделяемый для выполнения запроса. Пользователь может задать значение в диапазоне от 512 до 2 147 483 647 КБ. Значение по умолчанию — 1024 КБ.
Настроенные значения
Отображает настроенные значения для параметров на этой панели. В случае изменения этих значений выберите пункт Текущие значения и посмотрите, вступили ли в силу внесенные изменения. В противном случае первым должен быть перезапущен экземпляр SQL Server .
Текущие значения
Показывает текущие значения для параметров на этой панели. Эти значения доступны только для чтения.
1 Гбайт

Если, кто то из пользователей вышел, но не закрыл 1С, а висящие в фоне программы занимают оперативную память, это может мешать работе сервера.
Для завершения сеанса пользователей, воспользуйтесь нашей статьей, Как завершить сеансы пользователей на термниальном сервере 1С
Сервер баз данных тоже требует ресурсов
В зависимости от количества баз данных и их размера, если у Вам требуется работы в режиме SQL Server необходимо также предусмотреть объем оперативной памяти, выделяемой под данные требования.
На младших тарифах, возможно предоставление ресурсов отдельного хранилища баз данных, которое сэкономит ресурсы вашего сервера.
Сколько памяти нужно sql серверу
Товарищи, поделитесь рекомендацией, какой объем памяти от общедоступной обычно рекомендуется выделять СУБД MSSQL и стоит ли её вообще ограничивать?
Гугл на эту тему освещает не совсем однозначно. Где-то можно прочитать о 4-6гб, которых будет вполне достаточно, кто-то считает, что СУБД великолепно умеет сама грамотно распоряжаться нужным для работы объемом памяти и можно этот параметр вообще не настраивать.
Наверное истина как всегда где-то посередине, но все просто интересно было бы услышать живые, практические примеры, которые используются, проверены и положительно отражаются на деле.
Мне последнее время, чаще всего приходится иметь дело с машинками в 32-64гб. общего размера. По какому методу выделять СУБД, к примеру если выделить четверть, 25% будет достаточно ? Или реально более 4ГБ нет смысла отдавать?
Как быть с 1С сервером, нужно настраивать объем выделяемой памяти вручную или ей уже не надо?
(1) хорошая ссылка, спасибо, начал изучать.
(0)80% процентное попадание в кэш считается хорошо.
(3) смотрю кэш сейчас на машине, вижу всего 1,2 гб, при общей физической в 24 гб.
(1) формулу выделения памяти до конца не понял пока;
Пишут, что минимум должен быть от Total * 0.5, а максимум Total — 1024 * Total / Min. Это как ?
(4)
не тот кэш смотрите. нужно не кэш смотреть а счетяик производительности % поподания в кэш мс скл .