Romka_Kharkov

Romka_Kharkov
Рейтинг
485
Регистрация
08.04.2009
Должность
Хостинг
Качественный хостинг

Victoor, я полагаю если у вас Онлайн Игра, то надо бы определиться с локацией, хотя не ясно что за игра, если у вас CS там или какой-то шутер, то вам пинги до клиентов поменьше нужны.... а в принципе если веб игрушка то и не особо важно. Расскажите подробнее под что будет задействован ВПС, возможно в вашем бюджете сможет поместиться сервер, а не ВПС...

russ25:
Спасибо все кто прислал, почти на всех сделал акки. Есть еще потребность.

Требования простые:
Кол-во доменов: 5
Места от 50 мегов.
Цена: 1-1,5 бакса в месяц.
Поддержка PHP.

Странно, а мы по каким критериям не удовлетворяем условия?

Boris A Dolgov:
Python устроен так, что для каждого процесса есть некоторая глобальная структура, в которой хранится служебная информация -- загруженные модули, состояние интерпретатора и прочее. Имена у этой структуры в python-2.4 и python-2.7 одинаковые, из-за чего при линковке при загрузке DSO одна структура перекрывает другую и они не могут работать вместе.
Может помочь в исходниках апача заменить RTLD_GLOBAL на RTLD_LOCAL в srclib/apr/dso/unix/dso.c, но я не знаю, не сломает ли это работу других модулей, которые зависят друг от друга. Можно добавить костыль в виде указания RTLD_LOCAL только для питоновских модулей.
Можно попробовать ещё добавить в flags RTLD_DEEPBIND.

Так может собрать wsgi таким образом, что бы они выдавали разные данные в эту самую структуру? Или 2.7 каким-то образом собрать с другим именем для этой структуры и туда модуль направить :D Ну уж очень сильно хочется пройтись таким путем :D

iHead:
два апача.

Та ладно :D Сейчас в голове мелькнула мысль действительно о двух апачах, с проксированием запросов... но как-то это не кошерно, это всего лишь модуль :D

---------- Добавлено 05.09.2012 в 07:38 ----------

Пытался разобрать код mod_wsgi, да бы подменить мне там необходимый WSGIScriptAlias в надежде на то, что удастся собрать копию модуля, собранного с другим python, но названного иначе и с другим ключиком который используется, собрать удалось , подменив "WSGIScriptAlias" на "27WSGIScriptAlias " но вышел факап дальше :)

Ругается об этом:


static void wsgi_python_version(void)
{
const char *compile = PY_VERSION;
const char *dynamic = 0;

dynamic = strtok((char *)Py_GetVersion(), " ");

if (strcmp(compile, dynamic) != 0) {
ap_log_error(APLOG_MARK, WSGI_LOG_WARNING(0), wsgi_server,
"mod_wsgi: Compiled for Python/%s.", compile);
ap_log_error(APLOG_MARK, WSGI_LOG_WARNING(0), wsgi_server,
"mod_wsgi: Runtime using Python/%s.", dynamic);
}
}

После чего чилды начинают круто дохнуть,


[Wed Sep 05 00:03:23 2012] [warn] mod_wsgi: Compiled for Python/2.7.3.
[Wed Sep 05 00:03:23 2012] [warn] mod_wsgi: Runtime using Python/2.4.3.
[Wed Sep 05 00:03:23 2012] [notice] child pid 11878 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:24 2012] [notice] child pid 11879 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:24 2012] [notice] child pid 11880 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:24 2012] [notice] child pid 11881 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:24 2012] [notice] child pid 11882 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:25 2012] [notice] child pid 11884 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:26 2012] [notice] child pid 11886 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:26 2012] [notice] child pid 11887 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:27 2012] [notice] child pid 11889 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:27 2012] [notice] child pid 11890 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:27 2012] [notice] child pid 11891 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:27 2012] [notice] child pid 11892 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:27 2012] [notice] child pid 11893 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:27 2012] [notice] child pid 11894 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:27 2012] [notice] child pid 11895 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:28 2012] [notice] child pid 11896 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:28 2012] [notice] child pid 11897 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:28 2012] [notice] child pid 11898 exit signal Segmentation fault (11)
[Wed Sep 05 00:03:28 2012] [notice] child pid 11899 exit signal Segmentation fault (11)
....

Возможно загруженный ранее модуль от 2.4 откладывает какую-то ссылку где-то на момент подгрузки его апачем, что второй модуль наступает на нее при проверке этой? Я не особо шарящий в C тип , может кто подскажет? Может при сборке , что-то указать принудительно, что бы он RUNTiME воспринимал иначе? именно эта копия модуля. Я так понимаю проблема пока что именно в том, что он определяет откуда-то runtime версию.

Питон собран с --enable-shared (иначе другая ошибка при сборке mod_wsgi в принципе :D)

mod_wsgi-3.3

---------- Добавлено 05.09.2012 в 07:46 ----------

На сколько я вижу срабатывает Py_GetVersion(), которая видимо берется из 'Python.h', в таком случае, какого хрена, если сборка происходила с --prefix=/opt/python/ оно python.h читает по умолчанию... или таки Py_GetVersion() уже срабатывает не из того окружения?

---------- Добавлено 05.09.2012 в 07:58 ----------

Мдя, а static void wsgi_python_version(void) выходит просто "нотификейшон".... видимо падает по какой-то другой причине.....

Dimetr_ON:
2, причем одинаковых!
еще момент, не один нормальный админ не посоветует встроенный програмный рэйд, крайне не надежная вешь.

может ТС в сторону архивирования посмотреть? Акронисы чудеса творят)

Почему вы так, я вам скажу что даже многие хостинг провайдеры используют soft raid... это вполне уместное решение для домашнего ПК, у меня дома стоит внешний но он стоимостью 10$... т.е просто в ту планку удобнее винты втыкать, а так там чип один в один как на матери, работает на ура, как вы понимаете рейд контроллер за 10 баксов не далеко от софтового решения валяется ... ))) зачем мне домой покупать супермега контроллер за 500$ ? Это же не сервер на котором сотни клиентов что-то копошат с утра до вечера... а домашний комп, нагрузки минимальные с точки зрения FS (i/o) по сравнению с серверами... вполне подходит такое решение.... А вот винты действительно лучше иметь одинаковые, но скажу вам из практики - для мирора это роли особой не играет, важно что бы новый диск вставляемый в масив был не меньше размером чем оставшийся.... А так вполне удачно работают рейды из двух винтов например Seagate 500 и Hitachi 1 TRB.... никаких ваще проблем, за исключением того что терабайтник используется как 500 GB :))) Я уже где-то писал, что встречал конфигурацию рейда из IDE и SATA девайса.... И это все Mirror.... если говорить о более сложных конструкциях типа raid 5,6,10, и тудой.... то тут конечно все не так весело .... хотя в RAID-5 из 16 x 500 мы вполне спокойно всунули уже два терабайтника с данными все ОК, но там првда и контролер не за 10$ :)

Ну что же, довольно не плохой девайс если говорить о 82599EB....

очень даже не плохой, пока только не понимаю зачем его в сервер ставить, ну это ладно ... ;) Я вижу насоветовали уже ... прилично, думаю добавлять что либо будет излишним. :)

Я предположил, что ошибочка с устройством, редко ставят такие сетевки в сервера... это спец нужды какие-то мягко говоря :D

tiaurus:

Думать о нагрузке буду всегда. Вот только хотелось бы получить какой-нибудь механизм, ее отображающий. У вас есть таковой? (top в консоли не предлагать)

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

Простите, я не ослышался, 10 Gb/s ? А сетевая карта у вас в сервере 10 Gb/s умеет?

dyakoff:
Linux старается при загрузке занять найболее максимальное количество имеющейся памяти, но это не значит что он всю ее использует.

Я полагал что из фразы "Да это линукс, оно там зарезервировано и все такое" будет ясно, что я в курсе об этом... но все же, темпы ростут и ростут потребности, по этому если в 2000 году 512 мегабайт памяти считалось Вах! то сегодня это вообще никак не считается, я не буду говорить конкретно, вроде как объективно понятно, что тот же Linux в 2000 году при такой же установке занимал в памяти меньше места чем сегодня... а дальше погнали приложения.... тут вообще все понятно должно быть, какой-то кривой модуль может повергнуть 4 GB памяти в шок..... Ну допустим из 512 метров реально ос скушала 100 (хотя я думаю больше), на остальных 400 типа вполне можно крутиться по нынешнему времени ? :D

tiaurus:
Еще раз просмотрел все варианты - совсем скоро буду выбирать. Вот у вас VIP-S1 от VIP-S2 или от VIP-S5 чем отличаются, кроме трафика и количества доменов? Какое железо используется? И как я смогу проследить нагрузку на CPU, если вы ее не будете учитывать?

Отличаются они только местом\трафиком и кол-вом доменов, железо для всех тарифов будет одинаковое. Вы не будете даже думать о нагрузке :D А вот если что-то произойдет мега масштабное, что надо будет вам показать и доказать тогда мы посчитаем, но это будет не при достижении 21% ;) это факт :D У нас расчет на общее поведение сервера, а не на клиента в частности, если будет недостаточно какого-то ресурса мы поставим рядом еще 1 сервер и новые клиенты будут попадать уже туда, я в нашей теме на форуме регулярно пишу, когда заканчиваются квоты на какие-то сервера.. Мы их закрываем для новых клиентов. Таким образом после закрытия сервера , обретается спокойствие и покой на нем на долгое время.

Всего: 6838