Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
aleks26rus
Member

Откуда:
Сообщений: 100
Пролог:
Имеется сервер 1с с приблизительно 250 онлайн пользователями. База вынесена на отдельный сервер , служебные таблицы sql на одном ссд, база с логом на другом ссд (хотел логи и базу по разным разнести, но к данному серваку в датацентре больше дисков прицепить нельзя). Процессор Xeon E5-1650v3 (6 ядер 12 потоков), памяти 256. Размер базы ~200 гигов. Часто в течении дня упираемся в производительность скуля, а именно в дисковую систему. Т.К. 1с использует возможности скуля мягко говоря не оптимально, частенько случается что ввод/вывод загружен на 100%, а проц процентов на 50 (ну точнее три или четыре ядра на 100% а остальные так, чуть шевелятся). Память сжирает максимум 120 гигов, хотя в настройках скуля я ему 150 оставил.
Суть проблемы:
Планируем переезжать в другой ДЦ. Встали перед дилеммой, переезжать так же "как есть", или скуль перетащить на виртуалный сервер (для удобства администрирования и дальнейших миграций). Там в новой концепции предпологается, что все продакшен машины будут виртуальными, а на железных машинах только Hyper-v. К примеру https://www.osp.ru/winitpro/2013/08/13036878/ пишут что проблем особых возникнуть не должно, но все равно есть опасения по поводу падения производительности на виртуальном сервере по сравнению с физическим. У кого нибудь есть опыт реальной эксплуатации одинаковых конфигураций на физическом и виртуальном сервере? Или кто что почитать вдруг посоветует? и в принципе по поводу "SQL на виртуалке" что думаете?
8 дек 18, 23:35    [21758225]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
flexgen
Member

Откуда: Город на песке
Сообщений: 773
aleks26rus,

За 1С ничего не могу сказать, никогда не сталкивался. Что касается SQL на виртуальных серверах - в нашей конторе 99,9 % SQL серверов - виртуальные, включая кластеры. Часть серверов была переведена с физических на виртуальные при помощи p2v. Никаких особых проблем не наблюдается. Правда, у нас не Hyper-V используется а VMWare, но не думаю что это сильно критично.
9 дек 18, 00:03    [21758235]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
aleks26rus
есть опасения по поводу падения производительности на виртуальном сервере по сравнению с физическим. У кого нибудь есть опыт реальной эксплуатации одинаковых конфигураций на физическом и виртуальном сервере? Или кто что почитать вдруг посоветует? и в принципе по поводу "SQL на виртуалке" что думаете?
В принципе падение по сравлнению с физичесским сервером небольшое. Но нужно правильно всё настроить.

Главная проблема будет заключаться в том, что производительность будет зависеть (причём необычайно сильно, в разы и десятки раз) от настроек, к которым вы не будете иметь доступа.
Так что вам будут доступны только жалобы "на деревню дедушке", а там уж как повезёт, либо хостер будет решать ваши проблемы, либо предпочтёт побольше зарабатывать, и забьёт.
9 дек 18, 12:21    [21758386]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
aleks26rus
Member

Откуда:
Сообщений: 100
alexeyvg,
в принципе "железные" машины контролировать тоже будем мы...
9 дек 18, 17:28    [21758520]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
tunknown
Member

Откуда:
Сообщений: 760
aleks26rus
в принципе "железные" машины контролировать тоже будем мы...
Поставьте на боевую виртуалку рядом и сделайте тест ночью, если у вас нет пользователей из Владивостока. Или хотя бы на отдельный компьютер, тогда результаты будут хуже соответствовать. Думаю, по дискам падение производительности будет существенным. Хотя, если пробросите физические диски, то не так страшно. Но тогда, зачем виртуалка?
10 дек 18, 09:23    [21758793]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
rahzer
Member

Откуда:
Сообщений: 2293
MS сами оценивают падение производительности не менее 15-18% и то, при условии тюнинга.
Так что читайте бест практисы (фиксированные выделенные ресурсы, отключения энергосбережения, проброс дисков), но в итоге будет почти тоже самое, что и с физикой, разве что удобство админства, но это спорно.
10 дек 18, 09:40    [21758807]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
tunknown
Member

Откуда:
Сообщений: 760
aleks26rus
Размер базы ~200 гигов. Часто в течении дня упираемся в производительность скуля, а именно в дисковую систему. Т.К. 1с использует возможности скуля мягко говоря не оптимально, частенько случается что ввод/вывод загружен на 100%, а проц процентов на 50
Если база работает уже давно, но на ней нет регулярных админских действий и у вас есть возможность восстановить бекап на отдельном компьютере, то попробуйте дефрагментировать индексы. Вдруг поможет безотносительно переезда. Как дефрагментировать- на этом форуме много полезных рекомендаций.
10 дек 18, 15:27    [21759252]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
tunknown
Если база работает уже давно, но на ней нет регулярных админских действий и у вас есть возможность восстановить бекап на отдельном компьютере, то попробуйте дефрагментировать индексы. Вдруг поможет безотносительно переезда. Как дефрагментировать- на этом форуме много полезных рекомендаций.
Дефрагментация на ссд? А есть ли смысл?
Только что пустое место внутри страниц. Но это легко посмотреть, без необходимости проверять фрагментацию, на тех 120 гигах что уже в память загружены:

SELECT 
  COUNT(*)/128 AS [BufferSize MB], 
  SUM(CAST(free_space_in_bytes AS BIGINT)) / (1024 * 1024) AS [EmptySize MB], 
  CAST(100.*SUM(free_space_in_bytes/8192.)/COUNT(*) AS NUMERIC(8,2)) AS [EmptySize %],
  CAST(SUM(is_modified/128.) AS NUMERIC(20,2)) AS [DirtySize MB]
FROM sys.dm_os_buffer_descriptors
OPTION(MAXDOP 1)
11 дек 18, 22:33    [21760837]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
aleks26rus
Пролог:
Имеется сервер 1с ... в новой концепции предпологается, что все продакшен машины будут виртуальными, а на железных машинах только Hyper-v

Hyper-V - как мне докладывали - не позволяет пробрасывать внутрь виртуальной машины HASP USB ключи. Не знаю, как сейчас работает 1С, но я бы, коллега, сначала поинтересовался бы этим вопросом. Что с лицензиями и аппаратными ключами.
11 дек 18, 22:37    [21760846]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7362
А что с этой виртуализацией всех зациклило? Есле н а физ. хосте известно, что там крутится, то на виртуалке - не известно. И не вытолкнут ли вас "соседи" в своп по-ходу.
11 дек 18, 23:37    [21760894]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Relic Hunter
А что с этой виртуализацией всех зациклило? Есле н а физ. хосте известно, что там крутится, то на виртуалке - не известно. И не вытолкнут ли вас "соседи" в своп по-ходу.
Вот как раз это и зацепило.
Если будут квалифицированно управлять хостом и виртуалками, то всё не так страшно, не так уж сложно сделать так, что бы "не вытясняло" (хотя смысл использования виртуалок для сиквела немного ускользает, ну да ладно), но если чужие люди, то лучше физический сервер.
12 дек 18, 02:19    [21760965]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Relic Hunter
Member

Откуда: AB
Сообщений: 7362
alexeyvg,

Виртуалка это - комуналка, главная цель снизить стоимость проживания и утрамбовать народ. А вот доступ к "удобствам во дворе" по принципу FIFO может не всем понравиться. Я предпочитаю проживать в отдельной резиденции.
12 дек 18, 02:49    [21760974]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
rahzer
Member

Откуда:
Сообщений: 2293
Andy_OLAP
aleks26rus
Пролог:
Имеется сервер 1с ... в новой концепции предпологается, что все продакшен машины будут виртуальными, а на железных машинах только Hyper-v

Hyper-V - как мне докладывали - не позволяет пробрасывать внутрь виртуальной машины HASP USB ключи. Не знаю, как сейчас работает 1С, но я бы, коллега, сначала поинтересовался бы этим вопросом. Что с лицензиями и аппаратными ключами.

MS Hyper-V и сейчас не умеет (MS - это объясняет тем, что не хотят открывать эту возможность из-за безопасности), поэтому (если не использовать сторонние решения и железки) нужны программные ключи - но здесь следующая засада, если виртуалка будет мигрировать или будут добавляться\меняться ресурсы, то ключи будут слетать и надо по новой активировать - из-за этого возможности виртуалки резко сужаются и выгоды уже не так очевидны.
12 дек 18, 07:08    [21760993]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
vitkhv
Member

Откуда: Москва
Сообщений: 940
Andy_OLAP
Hyper-V - как мне докладывали - не позволяет пробрасывать внутрь виртуальной машины HASP USB ключи. Не знаю, как сейчас работает 1С, но я бы, коллега, сначала поинтересовался бы этим вопросом. Что с лицензиями и аппаратными ключами.


1С уже давно умеет без USB. Если текущая лицензия 1С на USB, пишешь заявление на обмен на программную защиту, меняют.
12 дек 18, 09:30    [21761046]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31364
Relic Hunter
Виртуалка это - комуналка, главная цель снизить стоимость проживания и утрамбовать народ.
В данном случае нет, ТС же всё рассказал.
12 дек 18, 10:12    [21761106]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
uaggster
Member

Откуда:
Сообщений: 827
aleks26rus
Пролог:
Имеется сервер 1с с приблизительно 250 онлайн пользователями.

Обратите внимание на сам сервер приложений 1С. От него в смысле быстродействия 1С зависит больше, чем от SQL сервера.
aleks26rus
База вынесена на отдельный сервер , служебные таблицы sql на одном ссд, база с логом на другом ссд (хотел логи и базу по разным разнести, но к данному серваку в датацентре больше дисков прицепить нельзя).

Что значит "служебные таблицы sql"? tempdb? Или что-то другое?
aleks26rus
Процессор Xeon E5-1650v3 (6 ядер 12 потоков), памяти 256. Размер базы ~200 гигов.

А вот это - ни о чем не говорит. Для сервера приложений 1С известно правило: лучше меньше ядер, но выше частота ядра, а для SQL сервера - всё зависит от характера БД.
Вообще, у нас при аналогичных размерах базы, но при 50 пользователях - всё нормально живет в рамках 4 Х 2сокета Зиона 2000ГГц (какой он - фиг знает, сервер ХП 2011 года). Но сервер приложений 1С закреплен за одним сокетом, а SQL - за другим.
Причем если в SQL это сделано штатными средствами, то как это сделано в сервере приложений - не знаю.
aleks26rus

Часто в течении дня упираемся в производительность скуля, а именно в дисковую систему.

Ненене! Это вы в приложение на 1С упираетесь.
У вас там где-то "от записи к записи" реализовано. По одной записи где то дёргаются и аллё.
aleks26rus

Т.К. 1с использует возможности скуля мягко говоря не оптимально, частенько случается что ввод/вывод загружен на 100%, а проц процентов на 50 (ну точнее три или четыре ядра на 100% а остальные так, чуть шевелятся). Память сжирает максимум 120 гигов, хотя в настройках скуля я ему 150 оставил.

А у вас наверняка standard, а он больше 64 (2012, 2014) или 128 (2016SP1+) и не умеет.
aleks26rus

Суть проблемы:
Планируем переезжать в другой ДЦ. Встали перед дилеммой, переезжать так же "как есть", или скуль перетащить на виртуалный сервер (для удобства администрирования и дальнейших миграций). Там в новой концепции предпологается, что все продакшен машины будут виртуальными, а на железных машинах только Hyper-v. К примеру https://www.osp.ru/winitpro/2013/08/13036878/ пишут что проблем особых возникнуть не должно, но все равно есть опасения по поводу падения производительности на виртуальном сервере по сравнению с физическим. У кого нибудь есть опыт реальной эксплуатации одинаковых конфигураций на физическом и виртуальном сервере? Или кто что почитать вдруг посоветует? и в принципе по поводу "SQL на виртуалке" что думаете?

1. Диски только фиксированного размера, ни в коем случае - не динамически расширяемые.
2. Никакой дедубликации на дисках с данными и логом и tempdb.
3. Для дисков с логами ОЧЕНЬ важен высокий иопс, и очень важна низкая латентность. Латентность в 5 мс, кстати, УЖЕ плохо.
4. Никакой динамической памяти.
5. Обязательно ограничение "снизу" на количество иопсов к дискам. Нужно - не менее 300. Даже если вам говорят, что имеется супер-пупер система на ССД с 100 тыс. иопсов, на которой все хостятся - обязательно задайте нижнюю границу для всех дисков.
6. Обязательно разберитесь с нума-нодами. Там куча нюансов. Кстати, прочтите заметку Дмитрия Зайцева: http://sqlcom.ru/optimization_query/automatic-soft-numa-problems/
7. Обязательно задайте нижнюю границу полосы пропускания сети.
8. Обговорите моменты, каким образом будет бэкапится машина. Там не все гладко, СХД должна поддерживать снепшоты, совместимые с SQLсервер. Да и вообще - то, что вам говорят, что машина там замечательно облачно бэкапится - не повод не делать sqlных бэкапов.

Как то так.
12 дек 18, 12:18    [21761306]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
sti
Member

Откуда:
Сообщений: 769
alexeyvg
В принципе падение по сравлнению с физичесским сервером небольшое. Но нужно правильно всё настроить.

Главная проблема будет заключаться в том, что производительность будет зависеть (причём необычайно сильно, в разы и десятки раз) от настроек, к которым вы не будете иметь доступа.


Именно так. Последние 5 лет в двух фирмах всё исключитеьно на виртуалках. В одном случае - грамотная команда админов и влияния железа на производительность не отмечалось. В другом случае - настроено абы как и регулярные чудеса. Позавчера, например, бэкап одной базы делался в 10 раз медленнее чем обычно. Причину вроде нашли, но если бы это был единичный или редкий случай.
12 дек 18, 12:18    [21761307]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7771
Relic Hunter
alexeyvg,

Виртуалка это - комуналка, главная цель снизить стоимость проживания и утрамбовать народ. А вот доступ к "удобствам во дворе" по принципу FIFO может не всем понравиться. Я предпочитаю проживать в отдельной резиденции.


Я допускаю мысль, что виртуализация может быть применена к слабо нагруженным SQL. Например, по деньгам один стоядерный комп дешевле ста одноядерных. Но настроить ее необходимо с минимальной конкуренцией и не виртуализировать диски. У меня был опыт попытки организовать File Stream на виртуальной машине, скорость 2 мб/с IO для файлового хранилища меня не устроила.
12 дек 18, 13:31    [21761463]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7771
Как правильно писал Алексей, обращения к админам виртуалки обычно падают в глухие уши.
12 дек 18, 13:32    [21761465]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Владислав Колосов
У меня был опыт попытки организовать File Stream на виртуальной машине, скорость 2 мб/с IO для файлового хранилища меня не устроила.

А бывает такое, что купят VMware, настроят виртуальные машины на работу с дисковой полкой типа EVA, затем покупают более емкую и скоростную, какую-нибудь Xyratex, какие параметры менять, никто уже не помнит, те, кто настраивал и обучался у продавца - давно уволился. И вдруг оказывается, что скорость упала в несколько раз, а что делать - никто не понимает.
12 дек 18, 15:28    [21761709]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Владислав Колосов
Как правильно писал Алексей, обращения к админам виртуалки обычно падают в глухие уши.

Это хорошо, когда они ничего не слышат и ничего не делают. Плохо, когда они начинают бегать как арабы по пустыне и менять все подряд, не записав заранее существовавшие настройки. Когда с каждой итерацией все хуже и хуже - а "сделать обратно" уже никак.
12 дек 18, 15:29    [21761713]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
vitkhv
Member

Откуда: Москва
Сообщений: 940
uaggster
А вот это - ни о чем не говорит. Для сервера приложений 1С известно правило: лучше меньше ядер, но выше частота ядра, а для SQL сервера - всё зависит от характера БД.

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

И параллелизм на SQL сервере включен, не смотря на рекомендации 1С.

А если смотреть в будущее - 1С пишет свою встроенный расчетчик, который уже на уровне платформы будет параллелить расчет партий. Так что не все так однозначно.
12 дек 18, 15:40    [21761738]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Igor.Ko
Member

Откуда: Киев
Сообщений: 48
Не всегда в плохой производительности виноват движок 1С - иногда это специфика запросов написанных программистами самой 1С.
Недавно рассматривали пример. В 1С был написан запрос "Выбрать максимальное из регистра сведений" - словили профайлером следующий запрос на SQL
SELECT
MAX(T1._Fld3322)
FROM dbo._InfoRg3320 T1
LEFT OUTER JOIN dbo._Reference61 T2
ON (T1._Fld3321RRef = T2._IDRRef) AND (T2._Fld284 = 0)
WHERE ((T1._Fld284 = 0)) AND (((T1._Fld3322 >= 100000000) AND (T1._Fld3322 <= 999999999)) AND (T2._Fld1019RRef = 0xB38B984BE108F89E11E6648280A34574))
- время выполнения 4 сек.

переписали через ВЫБРАТЬ ПЕРВЫЕ (1)» и «УПОРЯДОЧИТЬ ПО УБЫВ - 1С начала отправлять на сервер следующий запрос:
SELECT
TOP 1 T1._Fld3322
FROM dbo._InfoRg3320 T1
LEFT OUTER JOIN dbo._Reference61 T2
ON (T1._Fld3321RRef = T2._IDRRef) AND (T2._Fld284 = 0)
WHERE ((T1._Fld284 = 0)) AND (((T1._Fld3322 >= 100000000) AND (T1._Fld3322 <= 999999999)) AND (T2._Fld1019RRef = 0xB38B984BE108F89E11E6648280A34574))
ORDER BY T1._Fld3322 desc
- время выполнения 0,25 сек.
19 дек 18, 15:50    [21768510]     Ответить | Цитировать Сообщить модератору
 Re: Высоконагруженная 1c +sql 2014 и перенос на виртуалку?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
uaggster
6. Обязательно разберитесь с нума-нодами. Там куча нюансов.
А можно подробнее? Особенно для VM?
19 дек 18, 20:33    [21768870]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить