Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Network
  • » Создание сервера с неограниченым числом подключений [RSS Feed]

#1 Авг. 27, 2010 16:33:23

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Да-да. А можно еще poll, epolls, pyevent через тот же eventlet.hubs.use_hub



Офлайн

#2 Авг. 27, 2010 16:34:46

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

o7412369815963
можно попробоват ьиспользовать селект
Там тоже есть свое ограничение FD_SETSIZE, которое по-умолчанию равно 1024. Понятно, что можно перекомпилировать ядро/библиотеки, но само ограничение никуда не денется.
Да и вычислительные ресурсы сервера раньше закончатся. При таком большом кол-ве подключений узким местом может быть дисковая подсистема.



Офлайн

#3 Авг. 27, 2010 16:41:21

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Это уже зависит от задач. Если с диска не читать, то узким местом может быть скажем процессор или память. Но это уже другая история.



Офлайн

#4 Авг. 27, 2010 17:10:43

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Ed
Как же тогда оценивать ?
Как есть. Просто скажите что не так (ну тип по науке и эстетике)
Ed
thread.error: can't start new thread
Да да. Это моя мозоль.
Ed
похоже на ограничение по файловым дескрипторам
На моем Дебиане после добавления threading.stack_size плевался фразой что не может создать больше файлов. Но 1000 переплюнул.
regall
Посмотрите в код фреймворка/сервера Tornado и почитайте о проблеме 10k - http://www.kegel.com/c10k.html. Также познавательным будет знакомство с сервером YAWS - http://yaws.hyber.org.
Спасибо посмотрю.
Может кто то дать ссылку на какую нибудь статью (по подробней) о селекте.
В обще идея сервера простая. Цель эксперимент с онлайн игрой на Питоне (именно на Питоне). Не хочется с самого начала оставлять сервер на низких кол. подключений. Да и идея в что сервер и клиент будут сценариями на Питоне.



Офлайн

#5 Авг. 27, 2010 17:31:47

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

CryptSpirit
Как есть. Просто скажите что не так (ну тип по науке и эстетике)
Дык это же и будет пинание :)

Для начала читайте тут: http://www.python.org/dev/peps/pep-0008/ и запустите pylint .
Он оценил ваш код в 2.89 по десятибальной шкале.
Доведите оценку до девяти хотя бы. Потом можете показать результат здесь и продолжим.

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



Офлайн

#6 Авг. 27, 2010 22:07:42

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Ed
Для начала читайте тут: http://www.python.org/dev/peps/pep-0008/ и запустите pylint .
Он оценил ваш код в 2.89 по десятибальной шкале.
тогда оффтоп. Вот взять к примеру a=a+1 или a+=1. Используя profile и функции с циклами (для ощущения ризницы во времени циклы были не маленькими) показало что быстрее выполняется первый пример. В варианте с умножением скорость первой конструкции обогнала конкурентку в два раза. Зачем тогда вообще использовать конструкции вида += если это идет во вред производительности? Либо я что то не понял и в этом всем есть скрытая мудрость. Я новичке и при всем разнообразии стилей написания кодов меня реально волнует только производительность. Поправте меня если я не прав.



Офлайн

#7 Авг. 27, 2010 22:31:41

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

CryptSpirit
Либо я что то не понял и в этом всем есть скрытая мудрость. Я новичке и при всем разнообразии стилей написания кодов меня реально волнует только производительность.
Скрытая мудрость в том, что в разработке совсем не всегда требуется максимальная производительность. Питон не выбирают за скорость, у него другие преимущества.



Офлайн

#8 Авг. 27, 2010 22:37:47

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Daevaorn
у него другие преимущества.
Ну дак потерять процессорное время на подсчете номера подключения к серверу место того что бы реально уделить его например обработке трехтысячного потока (образно выражаясь конечно же), когда средствами языка этого можно избежать. Ну режте меня на куски не понимаю. Ясно что это не скоростной болид типа С но у всего же есть свои разумные рамки. И пусть настанет конец света, а я более чем уверен что в длительных циклах в Питоне у меня пальцы не двинуться с места что бы написать что то типа +=.



Офлайн

#9 Авг. 27, 2010 23:02:42

Alex_Kutsan
От:
Зарегистрирован: 2010-03-25
Сообщения: 150
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Я такое сделал на тредах. РАботает неплохо. Значит неограниченое число подключений, и клиент выбирает себе другого клиента из подключённных и ожидающих( Во как завернул фразу) Есть конечно свои глюки, никак не могу сделать чтоб при отключении клиента тред не выдавал ошибку. Но это мелочи.
Боюсь позорится выкладывать свой код после кода Ed.



Офлайн

#10 Авг. 27, 2010 23:26:10

CryptSpirit
От:
Зарегистрирован: 2010-05-05
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Создание сервера с неограниченым числом подключений

Alex_Kutsan
клиент выбирает себе другого клиента
У мну сломался мозг. Прошу амнистии. А как это?



Офлайн

  • Начало
  • » Network
  • » Создание сервера с неограниченым числом подключений[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version