Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.
  • Memcache is the only important app running on the server
  • Server has 16 cores and 144G RAM
  • Memcache is given 135G
  • Memcache runs at 32 threads
  • Gigabit network, test shows at least 300Mbit/s availability on network port
  • 600 connections
  • 3000 requests per second
  • Say that memcache (memory) usage is at 50% - it's definitely not full

As we increase number of requests towards server, requests slow down (from 8ms to 100ms per request) but server load remains 0.00. We suspect this can be solved by adjusting configuration but we don't understand many of the configuration parameters (besides, maybe, the number of threads).

Any ideas?

share|improve this question

migrated from stackoverflow.com Sep 14 '12 at 15:27

This question came from our site for professional and enthusiast programmers.

1  
Have you looked into using Redis instead of Memcached? –  gekkz Sep 14 '12 at 15:38
    
Have you considered profiling the application (my assumption that you have one) that uses memcached? Maybe tracing a slow memcached process? –  KM. Sep 14 '12 at 16:00

1 Answer 1

How many concurrent connections are open on this single machine? Have you increased the file descriptor limit in limits.conf for the user running memcached?

It's possible that you're reaching a file descriptor limit, which will cause new TCP connections to be dropped. And depending on your memcache client, this may result in a perceived slower response time.

share|improve this answer
    
good idea, however, that's seems fine... $ulimit -a -> open files (-n) 30000 .... and $ lsof | wc -l -> 1097 –  Ivko Maksimovic Sep 14 '12 at 19:55

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.