Який сервер мені потрібен для обробки 10 мільйонів запитів та запитів mySQL на день? [зачинено]


23

Я новачок в адміністрації сервера і шукаю потужний хостинг-сервіс для розміщення мого нового веб-сайту. Цей веб-сайт, в основному, є мобільним онлайн-грою, і він:

  • обробляти до 10 мільйонів запитів HTTPS та запитів mySQL на день
  • зберігати до 2000 ГБ файл на жорсткому диску
  • переносити, ймовірно, 5000 ГБ даних на місяць і назад
  • він працює на PHP та mySQL
  • мати 10 мільйонів записів у базі даних mySQL, для кожного запису є 5-10 полів, приблизно по 100 байтів

Я дійсно не знаю, який саме сервер мені потрібен для обробки цих вимог, моє питання:

  1. Який процесор / оперативна пам’ять мені потрібен для виділеного сервера або VPS?
  2. Які хостингові компанії можуть запропонувати такий виділений сервер або VPS?
  3. А як щодо хмарних обчислень? Я досліджував Amazon EC2, але мені це здається складним. І я зв’язався з Rackspace, але, як не дивно, вони сказали, що Cloudsites не відповідає моїм вимогам. Цікаво, чи є інша хмарна хостингова компанія.
  4. Будь-який інший метод?

ми обійшли це з двома серверами Linux з 8 гігами оперативної пам’яті, mysql - це кластер mysql, і БД швидко зберігається в пам'яті, процесор ніколи не дуже багато, якщо ви використовуєте хороший дистрибутив, і диск потрібно буде використовувати лише щогодини робити знімки - це надмірність у разі відмови. також, можливо, ви хочете встановити mysqltuner, щоб ви могли слідкувати за індексами тощо та найкраще використовувати все, а також додавати багато індексів та вести журнал повільних запитів, оскільки для Інтернету це може бути дуже дешево, просто додайте навантаження балансир на фронті, щоб розділити рух
мінус4

Чому б не скористатися хмарним сервісом? Azure, Amazon, RackSpace, GoGrid, Heroku?
bbqchickenrobot

Відповіді:


33

Недорогий робочий стіл?

Давайте вступимо в математику.

  • 10 мільйонів запитів.
  • Це розбивається на 416667 запитів на годину.
  • Це доходить до 6944 запитів за хвилину.
  • Це досягає 116 запитів за секунду.

Удвічі більше (пікове навантаження), і ми говоримо про навантаження, дешевий настільний чотирьохядерний робочий стіл може обробляти ЯКЩО запити досить прості, і ви насправді не говорите, наскільки вони складні.

  • 5000 ГБ на місяць банально - серйозно, застосовується та сама математика.
  • Це збивається до 208 ГБ / день
  • Це збивається до 8 ГБ / годину
  • Це випадає до 148 Мб / хв
  • Це виходить до 2,5 МБ / секунду, 25 Мбіт. Подвійний на пік - 50 Мбіт, тривіальний для будь-якого хостинг-центру. Однак це обійдеться вам.

  • Зберігайте 2000 Гб на жорсткому диску. Це тверді диски 2x2000 ГБ в RAID? Якщо тільки для бази даних є багато складних вводу-виводу, то це щось середнє від десятків дисків і багато 73 ГБ 15 000 об / хв SAS-дисків SAS в RAID 10 (близько 60 дисків), щоб отримати необхідний введення-виведення - це питання не відповідає без ЛІТЕШЕ більше інформації про структури доступу до даних.

  • Працює PHP та MySQL - Мій мобільний телефон може це зробити;) Питання в тому, наскільки складна програма. MySQL МОЖЕ ТА НЕ МОЖЕ бути тут прийнятним рішенням, BTW l. - це вимагало б більше тестування. Існує причина, що деякі люди все ще використовують інші великі комерційні бази даних.

  • Який процесор / рам потрібен для виділеного сервера або VPS?

Можна сказати, що це залежить від логіки (скільки обчислень у частині PHP, розумності чи нестачі програмістів та багато інших питань.

Якщо серйозно, це нетривіальна установка. Попросіть деяких фахівців розібратися в цьому.

В основному вам потрібно зійти і виконати домашнє завдання. Багато питань не відповідають на цю форму. Тим більше, що, здається, ти не дбаєш про свої дані ...

  • Резервні копії?
  • Немає плану на випадок надзвичайних ситуацій? Я маю на увазі, сервери вмирають - значить, ви в порядку, коли сайт не працює протягом днів, поки налаштована заміна?

Дякуємо за Ваш відповідь. php простий, я думаю, основне навантаження лежить на mySQL, я протестував деякі запити mySQL на своєму ноутбуці (Core2 Duo) з WAMP в Windows. з 10 мільйонами записів у mySQL, в середньому кожен запит коштує 0,1 секунди. наскільки сильніше з Quad Core бути в обробці запитів mySQL?
Кальвін

2
Забудьте чотирьохядерний сердечник. Ваш ноутбук МАЄТЬСЯ в IO - і IO - це те, де бази даних не наближені. У вас ЄДИН жорсткий диск, тобто SLOW і ROBUST (ноутбук). Сервери використовують МНОГО жорсткі диски, які є Швидкими (але не надійними). Я використовую чотирьохядерний фронтальний MS SQL Server і можу обробляти більше 500 партій в секунду на простих виборах (одна партія - один вибір), не збільшуючи процесор - але я отримую багато активності диска на підсистмі диска, яка, можливо, є більш ніж у 30 разів швидше, ніж у вас (і це ще не вражає). Диски - це межа. Плюс правильне програмування.
TomTom

1
Ваш трафік ssl потрібно буде зашифрувати / розшифрувати, можливо, ви захочете завантажити його на балансир і зробити зворотний проксі на звичайний http-сервер. Це повинно зменшити затримку. Ви також можете зашифрувати і апаратне забезпечення ....... en.wikipedia.org/wiki/SSL_acceleration, якщо бюджет не стосується вашої бази даних, використовуйте ramsan.com/success/ccpgames.htm
Джерело для Unix,

7

Щоб додати частину мого досвіду, який може бути корисним:

  • Як згадував TomTom, важко / неможливо дати точні характеристики, оскільки багато чого залежить від дизайну та реалізації вашої програми. Обладнання, яке надає мені чи комусь іншим X запитам / сек, може не працювати для вас.
  • У мене сервер MySQL низького рівня (Intel Core2 Duo E4600 2,40 ГГц, 4 ГБ оперативної пам’яті), що обслуговує в середньому 100 запитів / сек (близько 10 мільйонів / день) із частотою холостого ходу процесора 90%. Окрім деяких основних налаштувань конфігурації, вона працює добре завдяки тому, що вона читається великою (+ 95% прочитаних), а активний набір записів легко міститься в пам'яті. При виборі обсягу оперативної пам’яті сервера враховуйте розмір вашого активного набору, оскільки це може призвести до значних змін. Переконайтеся, що ви розумієте різницю між розміром вашої бази даних та активним розміром набору записів. Наприклад, у моїх базах даних близько 7 Гб, але активний набір, ймовірно, становить лише кілька 100 МБ.
  • Аналогічно, у мене є сервер Apache з аналогічними характеристиками, що обслуговує ~ 1 мільйон запитів на день, середній показник - 95% процесора в режимі очікування. Запити - це поєднання дуже простих запитів AJAX з картою даних та складніших сторінок MediaWiki.
  • Бенчмаркінг вашої конкретної програми - це хороший початок із спроби визначити, що саме вам потрібно. Ви не хочете робити недооцінку, але переоцінка може бути так само поганою через потенційну витрату грошей та зусиль.
  • Розглянемо не тільки середню ставку запиту, але й пікову. Ви не хочете, щоб сервер, який ледве впорався із середньою швидкістю, оскільки частота запитів може суттєво відрізнятися протягом дня, тижня та місяця. Наприклад, я можу отримати 3-4 рази трафік у години пік у вихідні дні, як у мінімальні години протягом тижня. Наскільки це залежить від вашої програми та бази користувачів.
  • Чи можете ви кешувати будь-який із запитів вашої бази даних / HTTP? Це може різко збільшити рівень запиту за допомогою дешевшого / меншого обладнання, залежно від обсягу кешування.
  • Розгляньте свої варіанти масштабування для подальшого зростання зараз, а не пізніше. Хорошим варіантом може бути використання горизонтального масштабування, яке дозволить вам почати з мінімального обладнання та легко зростати за потребою.
  • Правильний дизайн шару додатків може мати величезний вплив на його максимальну продуктивність. Неправильний запит SQL на таблиці без індексів може бути на порядок повільніше, ніж правильно розроблений. Так само погано налаштовані сервери Apache / MySQL можуть бути в багато разів повільнішими, ніж при правильній настройці.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.