Portál AbcLinuxu, 5. května 2025 09:22

Za rychlejší cyrus a světlé zítřky

11.2.2006 23:35 | Přečteno: 1093× | OpenSource

Používáme cyrus pop3/imap server proti databázi uživatelů a skupin uložených v LDAPu. Na největších instalacích (hostingové servery) čelíme výzvě zvýšovat výkon.

Problém je v tom, že NSCD (name service caching daemon), který slouží na caching passwd, group a host lookupů necachuje volání getgrent(3).

Existuje patch, který to řeší pomocí souboru, který slouží jako cache, ale je takhle fuj.

Čili je potřeba to řešit nějak lépe. Jedna varianta, která se nám zamlouvá je použit memcached, třeba i proto, že když už by na serveru běžel, šlo by na něm cachovat i další záležitosti, a proto, že existují klientské knihovny pro řadu jazyků včetne C a Ruby.

Tento přistup má jeden problém: memcached jede nad TCP socketem a naprosto bez autentizace, čili je potřeba memcached nějak upravit, aby bylo možné řídit přístup do cache. Třeba tak, že by poslouchal na Unix socketu a tím bylo možné řídit přístup ke cache pomocí unix práv nebo ACL přímo na socketu.

První výsledky mé snahy -- zatím ošklivý, ale FUNKČNÍ patch pro memcached.c a na klientskou knihovnu v Ruby je k dispozici.

Použije se to takhle:

$ ../memcached-1.1.12.patched/memcached -s /tmp/test.sock -vv &
[2] 23294
pie:martin:~/memcache/Ruby-MemCache-0.0.4.patched
$ <3 server listening
$ ruby -Ilib ex.rb File:/tmp/test.sock
<7 new client connection
<7 set foo:my_key 4 0 12
>7 STORED
<7 set foo:other_key 4 0 15
>7 STORED
<7 set foo:object_key 5 0 43
>7 STORED
<7 get foo:14851
>7 END
<7 set foo:14851 12 0 1
>7 STORED
<7 get foo:my_key
>7 sending key foo:my_key
>7 END
<7 get foo:object_key
>7 sending key foo:object_key
>7 END
<7 connection closed.
4pie:martin:~/memcache/Ruby-MemCache-0.0.4.patched

Teď je potřeba:
1) patchnout klientskou knihovnu pro C - asi tuhle,
2) patchnout cyrus....

       

Hodnocení: 83 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.