2011-07-02 15 views
4

プロセスごとに可能なlibevent-http接続の制限を制御したい。libeventの接続を制限する

どうすればいいですか?

ドキュメントに情報が見つかりませんでした。

私は、接続の数を制限しないと、システムがクラッシュする可能性があると思います。プロジェクトは非常に高い負荷です。

ev_base = event_init(); 
ev_http = evhttp_new(ev_base); 
// limit http connections here... how can i do that? 
+0

は、システムがクラッシュすることができます場合、私は – twoface88

+0

を探しています何はsetrlimit(RLIMIT_NOFILE ...ですLinuxの場合、 'echo" 2 ">/proc/sys/vm/overcommit_memory'。接続を制限したいと思うかもしれませんが、オーバーコミットを無効にすることは、生産Linuxサーバー。 –

答えて

3
struct evconnlistener * 
evconnlistener_new(struct event_base *base, 
    evconnlistener_cb cb, void *ptr, unsigned flags, int backlog, 
    evutil_socket_t fd) 

バックログには、変更したいものです。 内部彼らは呼び出し:

listen(fd, backlog) 

しかし、彼らのHTTPライブラリで、彼らは128にバックログを修正:?

evhttp_bind_socket_with_handle(struct evhttp *http, const char *address, ev_uint16_t port) 
{ 
    [...] 
     if (listen(fd, 128) == -1) { 
       event_sock_warn(fd, "%s: listen", __func__); 
       evutil_closesocket(fd); 
       return (NULL); 
     } 
    [...] 
} 
関連する問題