I revised memcached1.4.13 to make cas ID unique between server
reboots. But It seemed that two memcached instances on a server has
eaten up almost all memory under stressing load.
1. OS: centerOS5.3, 64bit
2. memcached startup command:
/opt/memcached1.4.13.0503b/bin/memcached -u nobody -d -m 4096 -c 1024 -
l 192.168.8.224 -p 11211 -v >  /var/log/memcached-11211.log 2>&1
/opt/memcached1.4.13.0503b/bin/memcached -u nobody -d -m 4096 -c 1024 -
l 192.168.8.224 -p 11211 -v >  /var/log/memcached-11211.log 2>&1
3. Memory usage:
[root@dell1-12 ~]# free -m

             total       used       free     shared    buffers
cached

Mem:         16044      15986         58          0         85
24

-/+ buffers/cache:      15876        168

Swap:         7820       6911        908

Stats on one instance:
stats
STAT pid 32205

STAT uptime 60090

STAT time 1336177937

STAT version 1.4.13.0503b

STAT libevent 1.4.12-stable

STAT pointer_size 64

STAT rusage_user 1125.852844

STAT rusage_system 2174.782382

STAT curr_connections 10

STAT total_connections 18

STAT connection_structures 11

STAT reserved_fds 20

STAT cmd_get 249567553

STAT cmd_set 2698828

STAT cmd_flush 0

STAT cmd_touch 0

STAT get_hits 241304080

STAT get_misses 8263473

STAT delete_misses 1249006

STAT delete_hits 1236936

STAT incr_misses 0

STAT incr_hits 0

STAT decr_misses 0

STAT decr_hits 0

STAT cas_misses 0

STAT cas_hits 0

STAT cas_badval 0

STAT touch_hits 0

STAT touch_misses 0

STAT auth_cmds 0

STAT auth_errors 0

STAT bytes_read 20934057174

STAT bytes_written 32731347667

STAT limit_maxbytes 4294967296

STAT accepting_conns 1

STAT listen_disabled_num 0

STAT threads 4

STAT conn_yields 77

STAT hash_power_level 20

STAT hash_bytes 8388608

STAT hash_is_expanding 0

STAT expired_unfetched 488121

STAT evicted_unfetched 0

STAT bytes 2909361795

STAT curr_items 803791

STAT total_items 2698828

STAT evictions 0

STAT reclaimed 492946

END

I am not sure whether my change caused this fatal issue. This only
happens when a large amount of objects are put into memcached. Here is
major change code:
uint64_t get_cas_id(void) {
    struct timeval tm;
    gettimeofday(&tm, NULL);
    return (uint64_t)tm.tv_sec << 32 | (uint64_t)tm.tv_usec;
}
I can put this customized version somewhere if needed. Hope someone
can help me. Thanks in advance.

Reply via email to