lath skrev:Tak for snakken sidste gang på IRC.
Det er skam mig der takker, det var en stor hjælp
Jeg fik ikke direkte testet mysql, men jeg fik kigget nok på den til at konkludere, at jeg ikke tror det er muligt at optimere "rigtigt" før siden bliver rykket over på serveren. Som sagt kender jeg ikke rigtig noget til databaser, så for serverens database læner jeg mig op af perl-scriptet mysqltuner:
Kode: Vælg alt
-------- Performance Metrics -------------------------------------------------
[--] Up for: 3d 9h 27m 4s (1M q [4.403 qps], 64K conn, TX: 3B, RX: 171M)
[--] Reads / Writes: 79% / 21%
[--] Total buffers: 58.0M global + 2.7M per thread (50 max threads)
[OK] Maximum possible memory usage: 192.4M (18% of installed RAM)
[OK] Slow queries: 0% (2/1M)
[!!] Highest connection usage: 88% (44/50)
[OK] Key buffer size / total MyISAM indexes: 16.0M/215.1M
[OK] Key buffer hit rate: 99.9% (5M cached / 3K reads)
[OK] Query cache efficiency: 81.5% (804K cached / 986K selects)
[OK] Query cache prunes per day: 0
[OK] Sorts requiring temporary tables: 0% (0 temp sorts / 26K sorts)
[OK] Temporary tables created on disk: 0% (107 on disk / 85K total)
[OK] Thread cache hit rate: 91% (5K created / 64K connections)
[OK] Table cache hit rate: 26% (220 open / 843 opened)
[OK] Open file limit used: 38% (419/1K)
[OK] Table locks acquired immediately: 98% (246K immediate / 249K locks)
[OK] InnoDB data size / buffer pool: 16.0K/8.0M
Der er lidt buffers der skal stilles på, og når siden så bliver rykket, så analyserer jeg kombinationen af reads som forummet laver, og opretter en (hvis jeg husker rigtigt) table-cache som passer.
nginx må jeg indrømme at jeg har opgivet. Anders har lavet store forbedringer i forummets software, og kombineret med at Varnish cacher alle billeder, css osv ligegyldigt om der er cookies eller ej, så nærmer vi os nu en situation hvor serveren kan klare 10 testbrugere. Det er med programmet openload at der testes. Selvfølgelig er indlæsningstiden høj med 10 testbrugere, men statistisk set burde forummet kun se 1-3 samtidige brugere, når der er mest tryk på i løbet af dagen, og så er indlæsningstiden faktisk kun omkring ~1250 millisekunder.
Wordpress driver alt undtagen /forum, og i Wordpress har vi fulgt Varnish' eksempel* om cache af Wordpress, så der tager Varnish 98% af trafikken, og effektivt set er indlæsningstiden ikke et problem. Selv når forummet bliver belastet med +10 testbrugere er indlæsingstiden ikke over 250 millisekunder for fx forsiden.
En anden ting som har hjulpet på apache2, er at MacClients er sat til 15, og at apache2 så må have det antal processor på standby. Det sikre dels at apache2 ikke kan bruge mere end 300 mb ram, og dels at nye processor normalt ikke skal startes, man kan genbruges. De har så en levetid på 1000 requests for at forebygge memory leaks.
Jeg har ikke noget imod at poste hele Varnish' VCL, men pt. indeholder den cirka det som jeg nævnte i det tidligere indlæg. Vi har snakket om at vi gerne ville undersøge hvordan 304 - Not Modified - og GET spiller sammen med Varnish, men jeg ved ikke rigtig hvor jeg kan finde ud af det. Hvis du har forslag til udvidelser, så hører jeg dem meget gerne, for Varnish er et genialt program i denne her sammenhæng, og jo mere arbejde vi kan få det til at lave, jo bedre bliver siden ganske givet.
Du har ret i at den nye server selvfølgelig understøtter IPv6, men ligesom med IPv4 koster de 2€ eks moms om måneden at bruge, eller at reservere. Så tanken var egentlig at holde fast i IPv4 så længe det er muligt, eller ihvertfald så længe at forummets brugere ikke bliver generet af det.
* https://www.varnish-cache.org/trac/wiki/VarnishAndWordpress
Install and activate a PHP cache like ...