Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2015, 10:23   #1
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию Проектирование нагрузки на веб-сервер

Всем привет, освоим новый раздел))))

Итак, в чем стоит вопрос:
Имеется диспетчерская служба такси реализованная на php+MySQL, клиенты - приложения для Андроида, которые так-же коннектятся к серверу чрез api реализованное на php

На данный момент имеем нагрузку следующего типа......
Клиенты (Андроиды), порядка 150-200 шт, запрашивают каждые 20 сек список доступных заказов (порядка 20-30 заказов), тут же отдают гпс координаты, кроме того отправляют свои данные какие то ... взятие заказа, отмена, инфа диспетчеру, вне расписания этих 20 сек.. .

Диспетчерская (5-10 дисп одновременно): веб-интерфейс, аяксовое обновление списка заказов - 50-60 заказов

+ служебные расходы, в кроне ежеминутно работает скрипт рассылки СМС (от 5 до 50 смс в мин)


Все это крутится на VDS (Диск 40.0 ГБ, Процессор 4x2000МГц, Память 4096МБ )


Очень интересует вопрос - о производительности всего решения в общем, когда ждать наступления перегрузки и что можно сделать для уменьшения нагрузки....

типа - для данного сервака у вас максимум будет - вот такое кол-во.... и почему.... что можно сделать кроме увеличения производительности железа.. .может на программном уровне что можно сделать?
ADSoft вне форума Ответить с цитированием
Старый 23.10.2015, 10:27   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну а сам сервер-то какой? Название-то Вы не даете. Вот уже по нему смотрите параметры, да и все.
Цитата:
.может на программном уровне что можно сделать?
Сегментировать юзеров. Ну вот ночью народ ходит меньше, тупо спят . Делайте скидки, какие-нибудь или бонусы на это время чтобы привлечь народ именно таким образом, чтобы не было пиковых загрузок, а доступ осуществлялся равномерно. Второй аспект это то как сама БД выполнена. То есть уже как Вы адаптировали задачу по скорости. Третий аспект - это боты. Больше всего грузят боты со своими запросами. Настройте правильно сайт, режьте неправильных или Вам не нужных ботов (да хоть по IP). Вот Yachoo можете зарезать например, люди на него жалуются. Есть самописные пауки (те что собирают какую либо инфу со страничек, например новости для автоматического репостинга), их подрежьте.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 23.10.2015 в 10:34.
Utkin вне форума Ответить с цитированием
Старый 23.10.2015, 10:34   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
когда ждать наступления перегрузки
Я не думаю что перегрузку при таких условиях стоит ждать.
Цитата:
может на программном уровне что можно сделать?
поиграться с кэшем мускула...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.10.2015, 10:36   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

я названия не знаю..... крутится в reg.ru в аренде
... мне просто необходимо понять алгоритм расчета нагрузки....
ну например - 1 клиент - N Мб памяти, 1 диспетчер - M Мб, может еще какие-то параметры... ну там по Процу.... недавно была ситуация просто - в запрос добавил один доп join и все легло..... типа нагрузка по БД возросла.... возможно мой косяк ....ибо объединение по строке номер телефона было... оно строковое и неиндексируемое

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

а сегментирование юзеров - по сути не спасет, если макс возможные ресурсы потратятся

может есть какие то инструменты - типа скриптов мониторинга... чтоб показывал - кол-во одновременных подключений, потребление памяти, трафа, проц времени, нагрузки в мускуле.. тогда можно было б опытным путем вычислить ...нет?

Последний раз редактировалось Stilet; 23.10.2015 в 12:05.
ADSoft вне форума Ответить с цитированием
Старый 23.10.2015, 10:43   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
... мне просто необходимо понять алгоритм расчета нагрузки....
Спросите у них. Или почтой в службу поддержки или наверняка есть свой спецфорум (многие хостеры так делают) где возможно даже есть ответ.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 23.10.2015, 11:12   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

адекватно отвечали бы- не спрашивал тут
ADSoft вне форума Ответить с цитированием
Старый 23.10.2015, 12:07   #7
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
Клиенты (Андроиды), порядка 150-200 шт, запрашивают каждые 20 сек список доступных заказов (порядка 20-30 заказов)
Цитата:
может на программном уровне что можно сделать?
убрать запросы, на сокетах реализовать
come-on вне форума Ответить с цитированием
Старый 23.10.2015, 12:10   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
... мне просто необходимо понять алгоритм расчета нагрузки....
А как можно рассчитать то, что в динамике постоянно? Плановая нагрузка исчисляется исходя из тестов. Крутится (как мы это делали с админами) самый тяжелый запрос, им сожраные ресурсы умножаются на кол-во пользователей, и берется средний показатель после того, как пользователи провели бета-тесты.
Более того сожранные СУБД ресурсы могут использоваться повторно, а не возвращаться в систему. Если я запросил гиг - память выделилась на гиг, потом ты запросил сто метров - выделенная под гиг память обработала эти сто метров без запроса нового места. Поэтому я бы дал некий период юзерам поработать, а уже по его результатам и судил бы что лучше сделать для оптимизации. Может БД, может памяти увеличить или кластеры поставить.
Цитата:
убрать запросы, на сокетах реализовать
А что обращение к СУБД по сети не на сокетах что ли?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.10.2015, 12:23   #9
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

не, не на сокетах, по сути REST ... запрос - ответ
ADSoft вне форума Ответить с цитированием
Старый 23.10.2015, 12:46   #10
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Про субд ничего сказано не было, есть там кэш заказов на сервере или нет? если нет то может и стоило сделать, запрос на базу будет один.
come-on вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание тестовой нагрузки на сервер(std::thread, boost::asio) halcyon C/C++ Сетевое программирование 2 24.04.2015 11:23
Веб сервер veter48 PHP 1 16.01.2014 23:51
Веб сервер koljsch Свободное общение 6 25.10.2012 21:24
Веб сервер Arsenx777 Работа с сетью в Delphi 1 17.08.2011 22:06
Веб сервер Abuhamed PHP 2 08.03.2011 23:56