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.