[support] Problem with Drupals built in cache
Margusja
margus at roo.ee
Thu Jan 20 19:06:24 UTC 2011
Tnx, I'll try and will inform you about a result.
BTW.
inspected memcache debug output and found lines:
<32 get
cache_page-http%3A%2F%2Fhostname%2Fclient%2Fdrupal%2Fsites%2Fall%2Fmodules%2Fad%2Fserve.php%3Fq%3D1%26t%3D0%26u%3Dnode%252F1029%26l%3Dliising%252Fkoostoopartnerid
>32 END
<32 get
cache_page-http%3A%2F%2Fhostname%2Fclient%2Fdrupal%2Fsites%2Fall%2Fmodules%2Fad%2Fserve.php%3Fq%3D1%26t%3D0%26u%3Dnode%252F1029%26l%3Dliising%252Fkoostoopartnerid
>32 END
But I can't see any STORED with thous keys.
Tervitades, Margus (Margusja) Roo
+372 51 48 780
http://margus.roo.ee
msn: margusja at kodila.ee
skype: margusja
On 1/20/11 8:45 PM, Jamie Holly wrote:
> Just use cacherouter instead of the memcache module. The configurations
> in settings.php are a little different, but that's what I use without
> any problem.
>
> Jamie Holly
> http://www.intoxination.net
> http://www.hollyit.net
>
>
> On 1/20/2011 12:59 PM, Margusja wrote:
>> So, I can replace my regular cache module with cacherouter and pressflow
>> and memcache should work parallels?
>>
>> Tervitades, Margus (Margusja) Roo
>> +372 51 48 780
>> http://margus.roo.ee
>> msn: margusja at kodila.ee
>> skype: margusja
>>
>>
>> On 1/20/11 7:06 PM, Jamie Holly wrote:
>>> You're using the regular memcache module. I've never used that one.
>>> Maybe someone who has would have an idea. Personally, I use cacherouter
>>> since it offers more features and flexibility.
>>>
>>> Jamie Holly
>>> http://www.intoxination.net
>>> http://www.hollyit.net
>>>
>>>
>>> On 1/20/2011 10:32 AM, Margusja wrote:
>>>> 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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?
>>>>>>>>>>>
More information about the support
mailing list