LINUX.ORG.RU

Эффективен ли такой механизм (+) ?


0

0

Господа, вопрос к знатокам.

Сейчас существует некая cgi-прога на Си. На каждый запрос от web-сервера она запускается, соединяется с БД mysql, выбирает некие данные и отдает их серверу в виде html-документа. Сейчас уже идет порядка 100 запросов в секунду и все падает. Решил сделать некий финт: Написать пару клиет-сервер так, чтобы сервер постоянно работал и постоянно был соединен с БД mysql, а также содержал весь весьма объемный код обработки и выборки данных, а клиент был маленькой cgi-прогой, которая только и делает что передает запрос от веб-сервера нашей серверной части, а результат работы обратно. Думал сначала использовать fast-cgi, но оказалось, что это невозможно по субъективным причинам.

Каково Ваше мнение, есть ли реальная возможность получить таким образом ощутимый прирост производительности? Если кто уже делал севера по обработке однотипных запросов - сразу доп. вопрос: есть ли смысл fork'ать новый процесс для обработки каждого нового соединения от клиента применительно к этой конкретной ситуации с большим числом вопросов?

Заранее благодарю за ответы.

anonymous

Сдаётся мне, что ключевым словом здесь должно быть DSO.

anonymous
()

2первый anonymous

если реально надо эту тему обсудить - пиши на asm (doggie) uinc . ru - ситуация была подобной, была поисково-рейтинговая система + счетчик. около 60 одновременных запросов.

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

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

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

anonymous
()

и.... по поводу DSO - неа, лучше статика и внешняя для апача, все-равно в памяти висеть.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.