In error log there is no problems recorded.
tnx for link. I'll check it out. Maybe it helps me closer to resolve my problem.
config lines from settings.php $conf['cache_inc'] = './sites/all/modules/memcache/memcache.inc'; $conf['memcache_key_prefix'] = 'seb_default';
Tervitades, Margus (Margusja) Roo +372 51 48 780 http://margus.roo.ee msn: margusja@kodila.ee skype: margusja
On 1/20/11 5:14 PM, Jamie Holly wrote:
You got a lot of misses in there. Have you checked your error logs to see if anything is going on? One thing that is possible is that you are hitting the 1mb limit for objects in memcache with the variable cache. This thread has some details on it:
http://groups.drupal.org/node/116764
Also if you could post your memcache configuration from settings.php to see if anything is going on in there.
Jamie Holly http://www.intoxination.net http://www.hollyit.net
On 1/20/2011 10:01 AM, Margusja wrote:
Tnx for hints.
I enabled memcache in my PHP conf. And I think the module is loaded. [16:50:57 root@arendus ~]# php -i | grep memcache memcache memcache support => enabled memcache.allow_failover => 1 => 1 memcache.chunk_size => 32768 => 32768 memcache.compress_threshold => 20000 => 20000 memcache.default_port => 11211 => 11211 memcache.hash_function => crc32 => crc32 memcache.hash_strategy => consistent => consistent memcache.lock_timeout => 15 => 15 memcache.max_failover_attempts => 20 => 20 memcache.protocol => ascii => ascii memcache.redundancy => 1 => 1 memcache.session_redundancy => 2 => 2 Registered save handlers => files user memcache
[16:49:22 root@arendus ~]# echo stats | nc localhost 11211 STAT pid 30211 STAT uptime 23950 STAT time 1295535057 STAT version 1.2.8 STAT pointer_size 32 STAT rusage_user 0.130980 STAT rusage_system 0.311952 STAT curr_items 473 STAT total_items 1763 STAT bytes 587316 STAT curr_connections 10 STAT total_connections 242 STAT connection_structures 15 STAT cmd_flush 0 STAT cmd_get 9007 STAT cmd_set 1763 STAT get_hits 1025 STAT get_misses 7982 STAT evictions 0 STAT bytes_read 11112904 STAT bytes_written 8412213 STAT limit_maxbytes 67108864 STAT threads 5 STAT accepting_conns 1 STAT listen_disabled_num 0 END
Still in mysqld log: 110120 16:53:15 4102 Connect user@localhost on db 4102 Query SET NAMES "utf8" 4102 Query SELECT 1 FROM access WHERE type = 'host' AND 'IP' LIKE mask AND status = 0 LIMIT 0, 1 4102 Query INSERT INTO semaphore (name, value, expire) VALUES ('variable_cache_regenerate', '14419249754d384c5bd38895.47612777', 1295535225.8664) 4102 Query SELECT * FROM variable 4102 Query DELETE FROM semaphore WHERE name = 'variable_cache_regenerate' AND value = '14419249754d384c5bd38895.47612777' 4102 Query SELECT name, filename, throttle FROM system WHERE type = 'module' AND status = 1 AND bootstrap = 1 ORDER BY weight ASC, filename ASC 4102 Query SELECT * FROM languages ORDER BY weight ASC, name ASC 4102 Query SELECT dst FROM url_alias LIMIT 0, 1
Tervitades, Margus (Margusja) Roo +372 51 48 780 http://margus.roo.ee msn: margusja@kodila.ee skype: margusja
On 1/20/11 4:03 PM, Jamie Holly wrote:
Then I would check phpinfo to make sure that the memcache extension is loading into PHP (you can do this from admin -> reports -> status and then clicking on your PHP version number).
If that's showing up ok, you can run a command from the terminal to make sure things are being written/read from memcache:
echo stats | nc {memcache address} {memcache port}
Your main things to look at are the hits, misses, bytes and connections.
There are also some versions of memcache + the PHP extension that don't work well together. This can be a hit and miss thing finding them. I know there was a combination in the CentOS repos a year or so ago that caused problems. Getting the latest version of the PHP extension and building it from source would fix that.
Jamie Holly http://www.intoxination.net http://www.hollyit.net
On 1/20/2011 8:43 AM, Margusja wrote:
Thx for a replay. I checked again my memcache and I think it works fine.
[15:40:16 root@arendus ~]# telnet localhost 11211 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. stats STAT pid 30211 STAT uptime 19724 STAT time 1295530831 STAT version 1.2.8 STAT pointer_size 32 STAT rusage_user 0.094985 STAT rusage_system 0.230964 STAT curr_items 67 STAT total_items 1089 STAT bytes 168012 STAT curr_connections 11 STAT total_connections 188 STAT connection_structures 14 STAT cmd_flush 0 STAT cmd_get 6580 STAT cmd_set 1089 STAT get_hits 711 STAT get_misses 5869 STAT evictions 0 STAT bytes_read 9254362 STAT bytes_written 5742821 STAT limit_maxbytes 67108864 STAT threads 5 STAT accepting_conns 1 STAT listen_disabled_num 0 END
rows from settings.php if(extension_loaded('memcache')){ $conf['cache_inc'] = './sites/all/modules/memcache/memcache.inc'; $conf['memcache_key_prefix'] = 'xxx'; }
Tervitades, Margus (Margusja) Roo +372 51 48 780 http://margus.roo.ee msn: margusja@kodila.ee skype: margusja
On 1/20/11 2:45 PM, Jamie Holly wrote:
Drupal is still going to check the access table to see if you have any blocks in there for the current user, even if the table is empty. The semaphore you are seeing is to prevent a cache stampede. You said that once you disabled memcache, everything worked fine. It looks like you have a problem with either your memcache server, the PHP memcache extension or your settings in Drupal for memcache. I would check the server first, since that's the easier. You can just do a telnet to check that out. From shell: telnet (server address) (server port) See if it connects OK. As far as Pressflow+Memcache, yeah they work great together. I run that combination for a couple of clients, including one that has seen over 150,000 page an hour, and never had a problem. Jamie Holly http://www.intoxination.net http://www.hollyit.net On 1/20/2011 4:12 AM, Margusja wrote:If I disable memcache support in PHP then in the problematic server I see that there no problem anymore. So can memcache and pressflow cache work parallel ? Tervitades, Margus (Margusja) Roo +372 51 48 780 http://margus.roo.ee msn: margusja@kodila.ee skype: margusja On 1/20/11 10:09 AM, Margusja wrote:> Hi > > I have two separate Drupal instances (Pressflow 6.19) In first one the > local cache works fine. Sql log: > 326 Query SET NAMES "utf8" > 326 Query SELECT 1 FROM access WHERE type = 'host' AND > '195.50.208.170' LIKE mask AND status = 0 LIMIT 0, 1 > 326 Query SELECT data, created, headers, expire, > serialized FROM cache WHERE cid = 'variables' > 326 Query SELECT data, created, headers, expire, > serialized FROM cache_page WHERE cid = 'http://IP/path/to/node' > 326 Query SELECT name, filename, throttle FROM system > WHERE type = 'module' AND status = 1 AND bootstrap = 1 ORDER BY weight > ASC, filename ASC > 326 Query SELECT name, filename, throttle FROM system > WHERE type = 'module' AND status = 1 AND bootstrap = 1 ORDER BY weight > ASC, filename ASC > 326 Quit > > But If I request the same node in the second machine. The code is same, > then the Sql log is: > 122 Quit > 123 Query SET NAMES "utf8" > 123 Query SELECT 1 FROM access WHERE type = 'host' > AND 'IP' LIKE mask AND status = 0 LIMIT 0, 1 > 123 Query INSERT INTO semaphore (name, value, expire) > VALUES ('variable_cache_regenerate', > '17865562914d37e5d81acd80.47344784', 1295508982.1098) > 123 Query SELECT * FROM variable > 123 Query DELETE FROM semaphore WHERE name = > 'variable_cache_regenerate' AND value = '17865562914d37e5d81acd80.47344784' > 123 Query SELECT name, filename, throttle FROM system > WHERE type = 'module' AND status = 1 AND bootstrap = 1 ORDER BY weight > ASC, filename ASC > 123 Query SELECT * FROM languages ORDER BY weight > ASC, name ASC > 123 Query SELECT dst FROM url_alias LIMIT 0, 1 > 123 Query SELECT src FROM url_alias WHERE dst = > 'hoiused-ja-investeerimine' AND language IN('et', '') ORDER BY language > DESC, pid DESC > 123 Query SELECT name, filename, throttle FROM system > WHERE type = 'module' AND status = 1 ORDER BY weight ASC, filename ASC > 123 Query INSERT INTO semaphore (name, value, expire) > VALUES ('locale_cache_et', '17865562914d37e5d81acd80.47344784', > 1295508982.4035) > 123 Query SELECT s.source, t.translation, t.language > FROM locales_source s LEFT JOIN locales_target t ON s.lid = t.lid AND > t.language = 'et' WHERE s.textgroup = 'default' AND s.version = '6.19' > AND LENGTH(s.source)< 75 > 123 Query DELETE FROM semaphore WHERE name = > 'locale_cache_et' AND value = '17865562914d37e5d81acd80.47344784' > 123 Query SELECT s.lid, t.translation, s.version FROM > locales_source s LEFT JOIN locales_target t ON s.lid = t.lid AND > t.language = 'et' WHERE s.source = 'Stores details about batches > (processes that run in multiple HTTP requests).' AND s.textgroup = > 'default' > .... > .... > loads of SQLs > > The main question why does the last one ask something from semaphore? In > both servers access table is empty. At first I thought the condition > came from that SQL: SELECT 1 FROM access WHERE type = 'host' AND 'IP' > LIKE mask AND status = 0 LIMIT 0, 1 but as I said in both servers access > table is empty. > > In both solutions caches are enabled. > > Any hints? >