The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Процессы, Треды, RPC)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

bind AF_UNIX AF_INET помогите открыть сокет, andribas (ok), 12-Мрт-09, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


3. "bind AF_UNIX AF_INET помогите открыть сокет"  +/
Сообщение от alexx (??), 13-Мрт-09, 05:19 

непонятно, причем тут epoll() и что такое совместный доступ к сокету
у тебя какая-то либа (evhttp) делает http сервис? тебе не нравится, как она это делает ?

Ответить | Правка | Наверх | Cообщить модератору

4. "bind AF_UNIX AF_INET помогите открыть сокет"  +/
Сообщение от alexx (??), 13-Мрт-09, 05:24 
  напиши еще, как epoll запускает дочерние процессы. он вообще-то этого не должен уметь, это всего лишь нотификация об эвентах , в частности на сокете ...


Ответить | Правка | Наверх | Cообщить модератору

5. "bind AF_UNIX AF_INET помогите открыть сокет"  +/
Сообщение от andribas (ok), 13-Мрт-09, 08:12 
>  напиши еще, как epoll запускает дочерние процессы. он вообще-то этого
>не должен уметь, это всего лишь нотификация об эвентах , в
>частности на сокете ...

Спасибо, теперь разобрался с этим. дочерних не запускается.
Loop выглядит так:

volatile event_gotsig;

while (event_gotsig) {
  event_gotsig = 0;
  
  if (event_sigcb) {
    res = (*event_sigcb)();
    if (res == -1) {
      errno = EINTR;
      return (-1);
    }
  }
}


>непонятно, причем тут epoll() и что такое совместный доступ к сокету
>у тебя какая-то либа (evhttp) делает http сервис? тебе не нравится, как она это делает ?

Спасибо. epoll тут не при чем. Как писал товарищ выше у меня действительно каша.
Ну если бы я точно знал, что мне мешает, я бы сам и понял как это сделать.

Такой сценарий:
1. Пользователь отправляет запрос на веб-сервер.
2. Запрос попадает к nginx и он отдает его моей либе.
3. Я его обрабатываю и отдаю обратно nginx.

Производительность запросов статических файлов на тестовом компьютере - 20К/сек
Для либы и для nginx.
Если к либе делать доступ через nginx не через сокет, а TCP/IP, то ее производительность снижается до 6-7 К/сек.
Мне не нравится, что я не могу отправить запрос либе методом IPC через сокет.
И поэтому у меня вопрос - можно ли открывать сокет AF_UNIX вместо AF_INET.
При этом на nginx у меня стоит workers=2. Надо ли делать 1?

И какой производительности при этом ожидать вместо 20К/сек?

Ответить | Правка | Наверх | Cообщить модератору

6. "bind AF_UNIX AF_INET помогите открыть сокет"  +/
Сообщение от angra (ok), 13-Мрт-09, 18:45 
Теперь значительно понятней что вообще хотите сделать и в чем проблема. Пока только такие идеи:
Можно попробовать самостоятельно открыть AF_UNIX сокет и передавать его в функции libevt. Однако работа с AF_UNIX несколько отличается от работы с AF_INET так что работоспособность будет зависеть от кода самой libevt.
Использование профайлера в обоих вариантах подключения может помочь найти тормозящий участок кода.
Возможно играет роль буферизация вывода.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру