I have a pool of memcached servers running on localhost with
connection to nginx, feeding motion jpeg data out via static JPEGs to
a flash application. The load is pretty high on the server because of
this with each client running 3 GETs from memcached every second (i.e.
3fps).
Nginx works fine, however, the problem I have is that thousands of
TIME_WAITs are created from the memcached GET requests, which I would
like to eliminate. I’ve already tuned the kernel but this has not
reduced it enough to handle a couple thousand viewers on the server.
Is there any way to connect nginx’s memcached module to memcached via
unix domain socket or perhaps UDP, or any other ideas on how to fix
this problem?
On Thu, Jul 31, 2008 at 09:54:03PM -0700, Kon W. wrote:
Is there any way to connect nginx’s memcached module to memcached via
unix domain socket or perhaps UDP, or any other ideas on how to fix
this problem?
Adding unix socket support to ngx_http_memcached_module should be easy,
but I’m not sure if memcached suppot unix sockets.
BTW why do you serve local images from memcached ?
It’s better for both CPU and memory to serve them from local filesystem
using sendfile.
Maybe I/O is too high ?
Use memcached can avoid this .
2008-08-01
Chancey
å‘件人: Igor S.
å‘é€æ—¶é—´ï¼š 2008-08-01 13:49:26
收件人: [email protected]
抄é€ï¼š
主题: Re: Memcached module – unix domain socket support? (too many
TIME_WAITs…)
On Thu, Jul 31, 2008 at 09:54:03PM -0700, Kon W. wrote:
Is there any way to connect nginx’s memcached module to memcached via
unix domain socket or perhaps UDP, or any other ideas on how to fix
this problem?
Adding unix socket support to ngx_http_memcached_module should be easy,
but I’m not sure if memcached suppot unix sockets.
BTW why do you serve local images from memcached ?
It’s better for both CPU and memory to serve them from local filesystem
using sendfile.
On Fri, Aug 01, 2008 at 02:27:55PM +0800, Chancey wrote:
Maybe I/O is too high ?
Use memcached can avoid this .
Using local memcached means that all data can fit in memory, therefore
local filesystem data will be cached by OS VM and there will not be
high disk I/O.
Adding unix socket support to ngx_http_memcached_module should be easy,
but I’m not sure if memcached suppot unix sockets.
It does. Use for the memcached config:
-s unix socket path to listen on (disables network support)
BTW why do you serve local images from memcached ?
It’s better for both CPU and memory to serve them from local filesystem
using sendfile.
The images are coming from webcameras as motion JPEG, so each image is
updated 5 times a second on average. The same image is updated in
memcached, and fed to a flash player. Memcached is the most efficient
way to serve these without writing a custom streaming backend. Writing
to disk is definitely not an option.
Yes, i meant this like you.
Using memcached can avoid disk I/O. I guess that is why he used
memcached on localhost.
sorry , my english very pool.
2008-08-01
Chancey
å‘件人: Igor S.
å‘é€æ—¶é—´ï¼š 2008-08-01 14:39:19
收件人: [email protected]
抄é€ï¼š
主题: Re: Re: Memcached module – unix domain socket support? (too many
TIME_WAITs…)
On Fri, Aug 01, 2008 at 02:27:55PM +0800, Chancey wrote:
Maybe I/O is too high ?
Use memcached can avoid this .
Using local memcached means that all data can fit in memory, therefore
local filesystem data will be cached by OS VM and there will not be
high disk I/O.
Nginx works fine, however, the problem I have is that thousands of
BTW why do you serve local images from memcached ?
It’s better for both CPU and memory to serve them from local filesystem
using sendfile.
Request scheduling as in queuing with priority, QoS?
Meaning, one or more location should have a higher priority in
completing the request, by going into the front of the queue?
For example, you have 1000 requests per second, and 10 of them are for
the location /realtime.jpg, and you want those requests to jump in front
of the queue and return the responses ASAP?
nginx is great ! but it has only one mode and one request scheduling in
Load balance.
if it has more options in load balance. it will be perfect
2008-08-01
Chancey
å‘件人: Igor S.
å‘é€æ—¶é—´ï¼š 2008-08-01 13:49:26
收件人: [email protected]
抄é€ï¼š
主题: Re: Memcached module – unix domain socket support? (too many
TIME_WAITs…)
On Thu, Jul 31, 2008 at 09:54:03PM -0700, Kon W. wrote:
Is there any way to connect nginx’s memcached module to memcached via
unix domain socket or perhaps UDP, or any other ideas on how to fix
this problem?
Adding unix socket support to ngx_http_memcached_module should be easy,
but I’m not sure if memcached suppot unix sockets.
BTW why do you serve local images from memcached ?
It’s better for both CPU and memory to serve them from local filesystem
using sendfile.
I wish nginx can’t only have round-robin scheduling , it would be added
more scheduling like LVS(IPVS).
2008-08-01
Chancey
å‘件人: Tit P.
å‘é€æ—¶é—´ï¼š 2008-08-01 15:56:40
收件人: [email protected]
抄é€ï¼š
主题: Re: Direct Routing of load balancing would be added in feature?
Request scheduling as in queuing with priority, QoS?
Meaning, one or more location should have a higher priority in
completing the request, by going into the front of the queue?
For example, you have 1000 requests per second, and 10 of them are for
the location /realtime.jpg, and you want those requests to jump in front
of the queue and return the responses ASAP?
I have a pool of memcached servers running on localhost with
connection to nginx, feeding motion jpeg data out via static JPEGs to
a flash application. The load is pretty high on the server because of
this with each client running 3 GETs from memcached every second (i.e.
3fps).
Cheers
Kon
How do you think about use ncache module instead of memcached ? I’m
definitly not an expert but when I read your post, it’s the idea that I
have had.