![]() |
![]() |
Специфические требования к аппаратной конфигурации сервера под SQL
|
||||
|
|
Представим типовую ситуацию: вот предприятие строит бизнес-планы, решило купить систему, скажем, для розничных продаж. Известны объёмы продаж, количество транзакций, типичное распределение их по времени, количество рабочих мест. Приходит к продавцу/разработчику соответствующего софта, и перед покупкой спрашивает - а какое железо для вашего софта нужно купить? А они вопросом на вопрос - а сколько денег есть? Конечно, оценка нагрузки - вещь сложная и неточная (если речь идёт о новой системе) и правильную оценку требований к аппаратному обеспечению (с "небольшой" погрешностью - раза в два) может дать только её разработчик или сторонний консультант, потратив на это время; возможно, проведя какие-то тесты. Мы попробуем определиться с типовыми требованиями, предъявляемые к серверу, на котором будет работать SQL-база данных. Для начала определимся, что именно может явиться узким местом для Вашей базы данных? Можно разбить нашу задачу на несколько областей:
Что касается сохранности информации, мы не будем здесь рассматривать проблемы организации резервирования и архивирования базы данных. Просто отметим, что эта задача должна всегда быть для Вас на первом месте. С точки зрения аппаратной конфигурации сервера - безусловно, жесткие диски должны быть организованы в RAID-массив с избыточностью (т.е. любой уровень рейда, кроме нулевого). Рейд может быть как внутренний, так и внешний - хранилище данных, подключенное по SCSI или интерфейсу Fibre Channel. Современные СХД, подключенные по оптике, способны передавать информацию со скоростью 4 Гбит/сек. Запись и поиск информации - это активная работа с диском. Вопрос, для чего вы используете SQL-базу в первую очередь - для записи и долговременного хранения данных, или для активного получения выборок? Если для накопления информации - предпочтение отдается не обязательно скоростным дискам, но ёмким HDD SATA. Если же база обрабатывает поисковые запросы пользователей в напряженном режиме, то, конечно же, необходимо устанавливать высокоскоростные HDD SCSI или HDD FC с частотой вращения шпинделя 15000 rpm. Из рейд-массивов в первом случае можно порекомендовать уровень 5 или 6, а во втором - уровень 1 или 10. Конечно же, тут очень много всяких "если". Процессоры. Здесь даже обсуждать нечего - чем быстрее, тем лучше. Чем больше внутренний кеш CPU - тем лучше. Чем больше процессоров - тем лучше. Все современные SQL-серверы, начиная от MySQL и заканчивая Oracle, поддерживают многопроцессорность. Можно только маленькое замечание, о котором и говорить-то не обязательно: самые новые процессоры отличаются от чуть более старых по скорости на проценты, а по цене - существенно. Мое личное предпочтение - Intel Xeon, но навязывать не буду.. Оперативная память. Её, как известно, много не бывает никогда. Особенно, для серверов, на которых "крутится" база данных SQL. Причины очень просты - это возможность кеширования таблиц в памяти, возможность кеширования запросов к базе, это также место под временные HEAP-таблицы. Есть ещё один момент - иногда для не очень больших баз данных с уклоном в сторону обработки большого количества поисковых запросов можно создать RAM-диск в оперативной памяти и хранить на нем таблицы базы. По скорости доступа к данным в таком варианте не сравнится никакой самый совершенный диск SCSI, но появляется проблема с сохранностью Ваших данных. Впрочем, такие проблемы частично снимаются при использовании технологии master-slave для SQL-серверов или достаточно частом бэкапировании таблиц на жесткий диск. Резюмируя, скажу, что если нет специальных причин, нижний предел для объема оперативной памяти на серьезном сервере не должен быть меньше 2048 МБ. К сетевым интерфейсам, как правило, нет серьёзных требований, выходящих за рамки обычных. Здесь все несложно расчитывается в зависимости от предполагаемого трафика. Кроме того, современные базы данных имеют возможность отдавать сжатый трафик (по алгоритму gzip), а также шифрованный - но это всё дополнительная нагрузка на процессор и вопрос организации Вашей системы. Пожалуй, нельзя обойти молчанием вопрос о сервере в целом - как о комплексе некоторого оборудования. Базы данных требуют высоконадежного аппаратного обеспечения - отказоустойчивого, с системами резервирования, с "защитой от дурака". Платформа, на которой должен быть построен Ваш SQL-сервер, по моему мнению, это - либо Intel, либо SuperMicro. При таком выборе Вы получите оптимальное соотношение цена/надежность, а наши специалисты помогут подобрать конкретный вариант, наиболее полно соответствующий Вашим задачам. Очень хорошо, когда серверы расположены в отдельном помещении, где есть кондиционирование, резервное питание, стойки, квалифицированный обслуживающий персонал, хороший замок на дверях, наконец. В заключение маленькое замечание, касаемое SQL баз данных в целом. Часто бывает, что для быстрой работы Вашей базы требуется не столько суперсовременное оборудование, сколько затраты на оптимизацию самой базы - хорошо построенные таблицы, правильный выбор индексов и т.п. Иногда удается повысить скорость запросов в сотни раз просто за счет хорошего индексирования - но это все лирика, которую разработчики знают не хуже меня!.. Борис Бондарчик, ведущий инженер «Компании «ТИМ». © При перепечатке указание авторства (Борис Бондарчик, 2006) и ссылка на источник (www.timcompany.ru) обязательны! |
|
||||||||||||||||||||||||||||||||||||||||
| © 2011 Группа компаний ТИМ, Почта: info@timcompany.ru, Ссылки | ||||||||||||||||||||||||||||||||||||||||||