Я хочу обновить сервер для веб-приложения. В настоящее время приложение работает очень медленно. Мы внесли некоторые корректировки в mysql (это уже другая проблема) и внесли некоторые корректировки, чтобы самые тяжелые запросы выполнялись на копии базы данных на другом сервере, которая использовалась в качестве резервной копии, однако это не продлится так долго, и мы ищем апгрейд.
В настоящее время центральными процессорами серверов являются (4) Intel (R) XEON (TM) CPU 2,00 ГГц с 1 гигабайтом оперативной памяти.
Размер базы данных составляет 442,5 МБ, около 1743808 записей.
Программа состоит из двух частей: одна, сторона a, вставляет и обновляет большую часть данных. Сторона b считывает данные и выполняет некоторые незначительные обновления.
В настоящее время наш самый большой день для стороны a - 800 пользователей (из 40 000 пользователей в течение всего года), приписывающих систему. А наша Сторона b пока неизвестна, но у нас всего 1000 клиентов.
Система, скорее всего, рассчитана на 5000 сторонних клиентов b и около 300 000 сторонних пользователей в год.
Текущей базе данных 5 лет, поэтому мы, скорее всего, можем ожидать, что база данных будет расти довольно быстро, возможно, вдвое каждый год (что, скорее всего, мы сможем архивировать более старые записи, если до этого дойдет).
Итак, с учетом сказанного, если мы получим сервер для каждой стороны приложения, сторона a будет ведущей, а сторона b ведомой, любые обновления, сделанные на стороне b, будут маршрутизироваться на стороне a.
Итак, вопрос в том, должен ли я получить 2 из них или 1.
И, естественно, мне понадобится резервная копия, поэтому потенциально их может быть 4.
На данный момент ... 1 гиг баран.
1 ГБ для загруженной базы данных? В самом деле? Текущий размер вашей базы данных составляет 445 МБ. Хотя это меньше, чем ваш 1 ГБ ОЗУ, добавление дополнительной ОЗУ предоставит место для индексов, журналов транзакций и рабочих наборов запросов, которые все будут жить в памяти. Если вы увеличите объем ОЗУ даже до 4 ГБ, готов поспорить, вы обнаружите, что ваша дисковая подсистема больше не имеет значения и что ваш процессор уже адекватен.
Тем не менее, я все равно буду искать новый сервер. Жесткие диски служат только на определенное время, и в конечном итоге вам все равно нужно перенести все на диск. Также есть шанс, что как только все будет в ОЗУ, вы обнаружите, что вам действительно нужно больше мощности процессора. Итак, продолжаем ...
я должен получить ... 500 ГБ SATAII HDD
Дорогой Господь, нет. Вы хотите по крайней мере 4 (посчитайте их) диски в этой системе (больше, конечно, будет лучше), и вам нужны диски SAS, если вы можете себе их позволить. Вам не нужно много места на жестком диске в зависимости от того, что вы показали, поэтому возьмите самые маленькие (и, следовательно, более дешевые) 10K диски, которые вы можете, поместите их в конфигурацию RAID 10 и убедитесь, что у вас есть настоящий аппаратный RAID-контроллер (к сожалению, ожидайте, что это добавит к общей стоимости почти 1000 долларов, иначе вы не купили хороший контроллер). Вы должны иметь возможность поместить все это в коробку 1U, совсем не проблема, но вы можете захотеть увеличить размер коробки 2U с несколькими дополнительными отсеками для обеспечения будущего роста. Общая стоимость такой системы составит 4000-5000 долларов.
Если система с 4 дисками SAS звучит дороже, чем вы хотели, поговорите со своим начальником и скажите ему, что вы можете отложить установку нового сервера в этом году, просто добавив оперативную память к старому, если он может дать вам деньги, которые вы Потребность в реальном сервере в следующем году. Скорее всего, он захочет сделать и то, и другое: просто позвольте вам купить оперативную память в этом году. и сэкономить на сервере в следующем году. Но даже если вам придется довольствоваться SATA вместо SAS, по крайней мере стойко держитесь за 4 диска плюс аппаратный RAID 10.
E5520 - единственный чип, который вы можете использовать? Сейчас он немного устарел, и вы увидите некоторые преимущества в производительности для новых чипов серии 56xx. Кроме того, эта сетевая карта почти наверняка будет 1 Гбит / с, а не 100 Мбит / с, насколько мне известно, у серверных плат больше нет 100 Мбит / с. Я бы также подумал об использовании пары зеркальных дисков SAS со скоростью 10 оборотов в минуту для работы с БД, если бы я был на вашем месте. О, и убедитесь, что вы также используете 64-битную версию Centos, в идеале последнюю версию, например 5.6 или около того.
Что касается вашего фактического вопроса, ну, указанная вами единственная машина будет значительно быстрее, чем ваша существующая. У меня возникнет соблазн попробовать использовать одну машину в соответствии со спецификациями, которые я упомянул выше, это позволит вам инвестировать в лучшие диски и т. Д. Тогда, если вы когда-нибудь почувствуете, что вам нужна вторая машина, я подумаю об этом в то время .
Вы можете просто обновить дисковую подсистему, что, вероятно, является вашим узким местом. Вы не указываете свою ОС, но на каждом из них есть инструменты, позволяющие проверить, насколько сильно пострадает ваш диск.
Двухдисковый RAID 1 для журналов транзакций и трехдисковый RAID 5 для БД были бы идеальными из того, что вы описываете. По возможности используйте хотя бы диски SAS.
Я бы посоветовал потратить немного времени, чтобы понять, почему ваша текущая настройка «медлительна», и получить более точную статистику о том, сколько запросов и какого типа выполняется на каждой стороне. Особенно с учетом того, что у вас может быть 10-кратное увеличение трафика, если вы просто попытаетесь масштабировать вслепую, вы рискуете масштабировать не то, и вам придется снова масштабировать в следующем году, потратив намного больше времени / денег, чем необходимо.
Несколько конкретных вещей, на которые я хотел бы обратить внимание: