Производительность 1С

Приведены Коментарии Вячеслава Гилева на советы горе оптимизаторов.

 

 

mceclip0.png

 

 

 

 

 

 

 

 

 

 

 

На работу пользователей влияет много факторов. Покупать лицензии на терминальный сервер, не проведя предварительно анализа причин замедления — деньги на ветер. Точнее это как в рулетку «повезет / не повезет».

Каким плюсом обладает терминальный сервер — он предоставляет пользователям «примерно равные по мощности аппаратные ресурсы». Естественно, если частота процессора на терминальном сервере будет выше чем на Вашем ноутбуке, то это может дать эффект. Все же логично, вы подключаетесь с более мощного компьютера по факту. Но для этого еще надо купить более мощный терминальный сервер. Если например на вашем ноутбуке будет частота 3,5 Гц, а на терминальном сервере 1,8 Гц, то Вы наверняка не улучшите, а ухудшите производительность. Дьявол в деталях.

Еще один момент — это физическая удаленность пользователя от сервера 1С:Предприятие. Использовать терминальный сервер имеет смысл, если он находится на том же «роутере / маршрутизаторе» что и сервер 1С, а компьютеры пользователей например в другом сегменте сети. Если компьютеры пользователей находятся также как и терминальный сервер в одном сегменте сети, не факт, что вы получите выигрыш от терминального сервера. Если Вы уверены, что с терминального сервера будет «быстрее», то до разворачивания службы терминалов зайдите на сервер под пользователем с правами локального администратора и запустите 1С:Предприятие — убедитесь в своей правоте на практике!

 Иногда люди легко попадаются на уловки маркетологов.

Можно сказать что будет «быстрее» и многие забывают куда более важный вопрос «А на сколько быстрее?».

 

 

 _________________________________________________________

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Есть очень простой способ — запустить нагрузочный тест http://www.gilev.ru/tpc1cgilv/  в обычном варианте, и по методу 2 от Богдана. Что получилось у Вас?

 Хочется подколоть » запустил дефрагментацию на своем OCZ Vector, не помогло, что я делаю не так?»

Для тех кто не в курсе, на SSD полностью занятое пространство куда больше имеет эффекта на производительность. А вот с дефграментацией особо толку не будет.

Ради справедливости надо сказать, что если Вы на MS SQL Server решили использовать обычные HDD, то просто сразу отдавайте файлу весь диск или максимально много. Не делайте «шринк» базы данных! Тоже относится к tempdb!

 

 _________________________________________________________

 

 

 

 

Вообще то совет правильный формально.

 

 

  _________________________________________________________

 

 

 

Единственное, если админ не читает документацию и ставит на скуль антивирус, то он вызывает большие сомнения в плане квалификации.

Если говорить более широко, ЛЮБАЯ ФУНКЦИОНАЛЬНОСТЬ ТРЕБУЕТ РЕСУРСОВ.

На самом деле рекомендуем не ставить со скулем ни каких других ролей сервера. Чем большей ролей, тем больше они будут конкурировать за ресурсы сервера. И фтп сервер, и почтовый сервер и все что угодно будет создавать замедление. Чем активней другая роль, тем меньше достанется СУБД ресурсов.

 

   _________________________________________________________

 

 

 

 В общем то совет пересекается с высказанным ранее — отключайте любой функционал, который не используете.

Все что работает «фоном» и потребляет ресурсы, уменьшает их для основных задач.

Но если уж продолжать эту тему, далеко не всегда можно выключить полнотекстовый поиск.

Если у Вас крупное предприятие на тысячи пользователей, то возможно у Вас есть функционал, который как раз реализован на полнотекстовом поиске, в наших проектах такое не редкость.

 

 

 Звучит как «перепишите Вашу программу» 

На текущий момент по нашему опыту скорость в «толстом» клиенте по отрисовке интерфейса работает быстрее нежели в «управляемых формах». С высокой вероятностью вы получите обратный эффект.

 

 

 Вообще использовать веб-сервер надо осторожно. Если у Вас все пользователи в локальной сети, то это фактически «лишнее звено».

Процитирую партнерский форум 1С https://partners.v8.1c.ru/forum/topic/1187394 о медленной работе веб-браузера «Проблема нам известна. Считаем ее достаточно важной. На данный момент ведутся задачи по данному направлению.»

Мы рекомендуем использовать при работе через http тонкий клиент 1с, а не браузер по возможности.

 

 

   Капитан очевидность — хороший в общем то совет, только звучит более правильно он так «попробуйте разные варианты, выберите лучший» )))

 

 

 Следуйте этому совету, если хотите себя дискредитировать. Быстрее работает то ПО, которое обладает меньшим функционалом как правило. Чем меньше функций программа умеет выполнять тем она быстрее работает.

Только вот ведь загвоздка, обычно бизнесу нужна не только производительность, но

  1. отказоустойчивость
  2. техподдержка продукта
  3. безопасность
  4. наличие специалистов
  5. совместимость с другими приложениями

Хотите проблемы, ставьте старое ПО, все ошибки, которые исправлены в более поздних версиях, там будут Вам доступны!

 

 

   Хочется напомнить про наши комментарии к способу №3 — заранее выделите нужное дисковое пространство под данные и логи, не изобретайте велосипед!

 

 

 О! И снова об избыточном функционале.

Избыточность вредна. Но не нравится сам подход на этом слайде.

Вы должны отдавать отчет себе за каждую запущенную или остановленную службу. Если увлечься, то может так оказаться, что Вам придется восстанавливаться из бэкапа. Вы его сделали?

Если Вы начинающий админ, лучше оставьте галочки «по умолчанию», не торопитесь ломать систему.

 

 

 

Для начала надо объяснить, что MS SQL Server смотрит на возможности процессора (количество ядер) и сам автоматически прикидывает, какое количество рабочих потоков он сможет обслужить. При этом ресурсы под каждое соединение выделяются по мере их создания, а не заранее. Зная как работает 1С:Предприятие, только если у Вас сотни пользователей массово запускают 1с или очень активно пишут данные, есть смысл ковырять эти настройки. В большинстве случаев вы ничего не заметите.

 

 

 В общем то не плохой совет. Но сильного «буста» вы не увидите скорее всего. Это сработает на «слабых» серверах. Если у Вас слабый сервер, лучше обновите железо, это дальновидней.

 

 

 Жуть, зачем блокировать базу? Используйте время минимальной загруженности. Если таблицы и индексы большие, то не надо все за один раз, в разное время обслуживайте разные объекты. Да, и переиндексацию надо делать не «тупо» раз в какой то период, а по мере набегания этой самой дефраментации индексов. Для анализа этой ситуации используйте http://www.gilev.ru/sqlsize/

 

 

 В общем то если купить более быстрый диск, то будет быстрее. Но у вот у нас к примеру, уже SSD. И кстати, куда больше пользы для потоковой скорости 1С даст частота процессора как ни странно, обязательно изучите http://www.gilev.ru/bestproc1c/ наши рекомендации по подбору процессора, это 50% всей производительности железа.

 

 

 Хороший способ. Только применять надо по другому — кладите туда tempdb!

А еще более актуальный вариант в ближайший год будет это использовать SSD для «расширенного буферного пула» в MS SQL Server 2014.

На рам-диск размещать надо различные кэши, временные файлы, но ни как не базу данных.

 

 

 Ну да, еще купите дисков, потому в 10 рейде например 3 диска 5го рейда заюзать не получится. А для SSD использование рейд-массивов это вообще отдельная история, они обычно в этом случаи изнашиваются зеркально ). Можно еще раз сказать про капитана очевидность — купите мощнее сервера!

 

 

   Обычно виртуальные машины нужны не для повышения производительности, а для решения других задач:

- изолировать влияние разработчиков на среду промышленной базы

- организовать отказоустойчивость

- организовать облако и быстрое выделение нужных мощностей

Ну если Вы хотите порушить решаемые задачи, тогда этот совет для Вас!

 

 

 Наверное эзотерические знания это не плохо. Не очень понятно, как на фоне покупки SSD, использования 10 рейда вместо 5го выглядит «слабый» сервер, но уж точно не надо перемещать на компьютер пользователя: — компьютер пользователя не оптимизирован под коллективную конкуренцию ресурсов; — на нем стоит не серверная операционная система, которая просто не позволит вам больше 10 подключений — пользовательский компьютер на ночь часто выключают — еще компьютер пользователя можно «тупо вынести с предприятия», а заодно пароли и т.п. — как вы будете отвечать за компьютер, на котором помимо сервера 1с еще работает другой пользователь, вы думаете он ребутнет, не сможет подвесить систему или запустить торрент на закачку фильмов?

 

 

 Ну вот на самом деле здесь бы как раз порекомендовать использовать терминальный сервер и нет проблем. Используйте вай-фай!

 

 

 Ну вот это спорный момент. К пример у вас на сервере 100 баз размером 10 Гб каждой базы данных. Из этой логики нормально будет иметь оперативки 10-20 Гб. Советуем ориентироваться на показатели «Частоты попадания в кэш» у MS SQL Server, если активной подкачки с диска нет, значит памяти хватает.  Но спорить с тем что чем больше памяти, тем лучше не будем. Сквозь весь курс проходит красной линией «купите мощнее сервер»

 

 

Ну тут можно дать и более радикальный совет. Всегда ограничивайте MS SQL Server по максимальному объему оперативной памяти таким образом, чтобы операционной системе оставалось 5-10% от общего объема оперативной памяти (в том числе для нужд подкачки) , и не менее 2 Гб при этом.

 

 

 

Особенностям производительности файлового и клиент-серверного варианта посвящена очень хорошая статья http://www.gilev.ru/mssqlvsfile/ . Мы получили много откликов и только больше убедились в том, что лучший способ не искать «более хорошую программу», а разбирать проблемы, выяснять причины и устранять их.

Если вы думаете что замена MS SQL Server на Оракл или DB2 что то улучшит, то это мы хотим сэкономить Вам кучу времени и денег — правьте код 1С а  не меняйте MS SQL Server на что то другое!

Есть ли смысл комментировать, если не писать конструктивно.

 

 

 

НЕСКОЛЬКО СОВЕТОВ ОТ НАС:

Совет 1. Не надо делать как «соседу помогло значит и мне поможет». Всегда выясняйте в логах конкретные причины. Не фантазируйте «ну наверно дело ….». Докажите, локализуйте, воспроизведите проблему!

Совет 2. Найдите самое узкое место. При чем и в железе, и в коде.

Используйте http://www.gilev.ru/querytj/ ,  http://www.gilev.ru/hardware/ . Начните устранять проблему с самого узкого места.

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

Совет 4. Если Вы администратор, сервера не загружены, а 1с «висит», не надо занимать позицию «я вот отвечаю за это, поэтому чем смогу помогу». Зовите программистов. В конце концов позовите нас!

Совет 5. Дорогой сервер — не означает что самый быстрый сервер. Разные конфигурации 1С могут по-разному нагружать аппаратные ресурсы. Делайте тест-драйв покупаемых серверов и проводите нагрузочное тестирование.

Совет 6. Если у Вас в системе много взаимоблокировок, а конфигурация на управляемых блокировках, включите версионирование. Это даже если не устранит проблему, то поможет ее быстрее локализовать. Если блокируемые ресурсы используют чтение, то версионирование устранит взаимоблокировки субд. Иначе у вас блокировки только блокировки на запись, вам надо уменьшать время транзакций (например разбивать на более мелкие порции записываемые данные). Используйте http://www.gilev.ru/deadlock/ для дальнейшего анализа.

Совет 7. Консультируйтесь не у толпы по вопросам производительности, у толпы нет финансовой ответственности за сказанное! Спрашивайте тех, кто занимается каждый день, в том числе нашей команда http://www.gilev.ru/forum/. Мы как минимум рискуем репутацией. В платных аудитах и работах мы несем денежные гарантии!

 

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0

Если статья оказалась вам полезна, пожалуйста, отблагодарите посильной суммой :)

Еще есть вопросы? Отправить запрос

0 Комментарии

Войдите в службу, чтобы оставить комментарий.
На базе технологии Zendesk