![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
pakulo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.7.2007 Репутация: нет Всего: 1 |
Есть у меня программа-сервер, стоит она на одном сервере, преположим под FreeBSD, и работает с БД Postgres, она нормально работает, но вот в один прекрасный день кол-во пользователей зашкаливает критическую черту, нужно вводить другой сервер. Поэтому и хотел бы для себя сейчас этот вопрос закрыть и возможно во время проектирования сервера это просчитать, что бы в дальнейшем не возникало проблем.
Буду признателен за любою информацию. Просьба в Яндекс и иже подобные не отправлять, искал, коечто нашел, но это скорее всего информация для администраторов, т.е. как эти системы организовывать, но ни как под них писать ПО. Спасибо! |
|||
|
||||
witex |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 16.10.2006 Где: Эстония Репутация: 1 Всего: 4 |
Предпологать не надо! А говори точно и что где стоит!
Ваабще первая реалия для тебя это вначале перебрать твоё ПО, для оптимизации уменьшить нагрузку! Во вторых поменять железо на серваке! А ваабще поставь поставь ограничение на количество пгользователей! А онстальных в режим ожидания! Да и всё зависит от того какие функции у тебя сервер выполняет! Это всё таки важнее для нас информаци счас чтобы совет тебе дать! Это сообщение отредактировал(а) witex - 22.7.2007, 15:43 --------------------
Я не волшебник, я только учусь."Шлёпни в Гугл" - Афтор Былов Ю.М. |
|||
|
||||
pakulo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.7.2007 Репутация: нет Всего: 1 |
witex, ну на счет разработки и оптимизации своего сервера это не проблема, здесь хоть есть литература, информации хватает.
Не получиться, так как нет тогда смысла с проекта. Скажем, это будет типа ICQ, т.е. должна быть поддержка всех пользователей, которые прислали запрос. |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
скажем, посмотрите сервера jabber как сделаны (тот что ejabber)...исходники открыты....
а вообще можно сделать так? делаете сервер раздатчик (он говорит клиентам куда им предпочттельнее коннектится (на какой ip)), а сам он держит информацию о нагрузке на каждый сервер.... (там, скажем, сделано на mailRU). или у Вас проблемы с СУБД ? Есть иные (вплоть до самописных на основе Berkeley DB - кстати для im систем имхо лучше чем "тормозные sql"....)).... p.s. имхо придумывать новые IM системы не надо, есть jabber 8) зачем изобретать велосипеды? Это сообщение отредактировал(а) jonie - 23.7.2007, 00:18 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
pakulo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.7.2007 Репутация: нет Всего: 1 |
Про велосипед, я знаю, здесь просто немного другая песня... Даже не просто немного, а совсем другая концепция, поэтому готовый продукт взять не выйдет. Исходники серверов джаббера я скачал, скачала даже сервер Iserverd ICQ (кстати, в документации там что-то про параллелизм написано). Но вы ж понимаете, что разобраться в готовом коде - это не один день, да и возможно ли такой специфический вопрос отыскать в коде без документации, я не уверен, вот поэтому и обратился за помощью к общественности
![]() вот, это простой и, в принципе, неплохой способ. Но тогда такой вопрос, как разгрузить БД (если БД будет на одном отдельном сервере), или как сделать синхронизацию (если БД будет на разных машинах). Это сообщение отредактировал(а) pakulo - 23.7.2007, 11:35 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
Это сообщение отредактировал(а) jonie - 23.7.2007, 12:00 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
pakulo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 14.7.2007 Репутация: нет Всего: 1 |
jonie, ок, понял, спасибо...
Тогда, возможно, будут еще предложения по организации параллельной работы сервера и его программирование ![]() Это сообщение отредактировал(а) pakulo - 5.7.2010, 18:16 |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 5 Всего: 118 |
если не думать то делаешь протокол связи сервер-сервер (s2s), и сервера функционируют раздельно (хотя и выглядят мб как одно целое)...надо лишь продумать как уведомлять серверN о том что юзер с сервераM отключился (N!=M)...а это уже выбирать память\скорость надо...т.о. возможно слинковывать сервера в масштабные сети и получать гемморой известный как "захват власти при сплите" (irc).
Или же делать реальный кластер из 2-х и более машин...есть системы для кластеризации...... Про паралельные вычисления почитать тоже имхо стоит (стандарт MPI (например, реализация в MPICH)). Там говориться о уведомлениях процессов о действии друг-друга (One2All Broadcast.. Scatter и прочие...)...гугл найдет. Вот там реальные распределенные вычисления.... В общем курс Распределенная Обработка Информации ВУЗовкий.... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |