Назад | Перейти на главную страницу

Системные требования для приложений с большим объемом записи, обслуживающих сотни запросов в секунду

НОТА: Я PHP-разработчик-самоучка, практически не имеющий опыта управления веб-серверами и серверами баз данных.

Я собираюсь написать веб-систему посещаемости для очень большой базы пользователей. Я ожидаю, что от 1000 до 1500 пользователей вошли в систему одновременно, делая по крайней мере 1 запрос каждые 10 секунд или около того в течение 30 минут в день, 3 раза в неделю. Таким образом, это более или менее 100 запросов в секунду или, в худшем случае, 1000 запросов в секунду (в среднем 16 одновременных запросов? Но это может быть больше, учитывая короткие временные рамки, в которые пользователи будут делать эти запросы. скрещивает пальцы, чтобы избежать 100 одновременных запросов).

Я ожидаю двух типов транзакций: local (не имея в виду local сеть) и foreign сделка. local транзакции в основном загружают пользовательские данные в своем регионе и кешируют их в течение 1-2 недель. Приезды посещаемости, вероятно, будут состоять только из двух числовых строк: userid и eventid. foreign транзакции предназначены для посещения тех, кто не принадлежит к текущей местности. Вместо этого будут переданы следующие данные: (numeric) locality_id, (string) full_name. Оба запроса выполняются в Ajax, поэтому данные HTML не включены, только JSON. Оба типа запросов ожидают как минимум одного числового ответа от сервера. Я думаю, что будет деление 50 на 50 по частоте local и foreign транзакций, но в любом случае разница в размерах этих транзакций составляет всего несколько байтов.

На данный момент userid может достигать только 6 цифр и eventid также являются целыми числами от 4 до 5 цифр. Я ожидаю своего users таблица должна иметь не менее 400 тыс. строк, а event таблица должна иметь до 10 тыс. строк, locality таблица, содержащая не менее 1500 строк, а моя основная таблица посещаемости должна увеличиться на 400 тыс. строк (в зависимости от количества пользователей в users table) в день 3 дня в неделю (1,2 млн строк в неделю).

Для меня это звучит масштабно. Но так ли это на самом деле? Или это может быть обработано одним сервером (еще не уверен в спецификациях сервера, поскольку я, вероятно, воспользуюсь VPS от ServInt или других)? Я пытался читать на нескольких настройках сервера Heatbeat, DRBD, настройки master-slave. Но мне интересно, действительно ли они необходимы. то users table будет добавлять около 500 1000 строк в неделю.

Если это не может быть обработано одним сервером, то, если я выберу топологию репликации MySQL, что будет лучшим вариантом для этого случая? Извините, если я звучу расплывчато или вопрос слишком широкий. Я просто не знаю, что спросить или что вы хотите узнать в данный момент.

У нас есть несколько канонических вопросов о нагрузочном тестировании и планировании емкости.

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

Как вы проводите нагрузочное тестирование и планирование емкости для баз данных?

Можете ли вы помочь мне с планированием моей мощности?

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

Я бы начал с некоторых технических документов оракула / mysql. они обычно очень подробно разбираются в деталях, когда дело доходит до сравнительного анализа, начиная с этого поиск вы можете получить краткий обзор возможностей mysql-сервера и оборудования, связанного с такой производительностью [первые три результата являются хорошими стартовыми].