Om du upplever att WordPress admin, wp-admin, är segt på din server finns det många saker att göra. Idag har jag felsökt en av våra webbplatser tillsammans med Johannes Henrysson . Till att börja med trodde jag att det var MySQL-servern som var orsaken till att det var segt i wp-admin, men efter att ha utsatt MySQL för en massa konstiga frågor konstaterade jag att den knappt blev belastad. MySQL var således inte orsaken.
Vissa av sajterna/bloggarna var snabbare än andra i vår multi-installation som kör samma wp-admin för alla sajterna. Hur kunde det komma sig? Jag aktiverade slowlog i php.ini på servern och började läsa loggen. get_dirsize()
dök upp lite här och var i loggen. Kunde det vara den funktionen som drog ner prestandan och gjorde att bilduppladdning tog evigheter? På Panelen i wp-admin står det hur mycket diskutrymme din blogg använder och hur mycket utrymme du har totalt (kallas quota). Denna verkade räknas ut vid varje sidvisning i wp-admin och jag hittade en option för att stänga av detta. Det är i tabellen wp_sitemeta vi hittar meta-värdet upload_space_check_disabled
och om den är satt till 1
försvinner informationen om utrymme från Panelen.
INSERT INTO wp_sitemeta(site_id,meta_key,meta_value) VALUES('1','upload_space_check_disabled','1');
Efter det gick wp-admin betydligt snabbare och bilduppladdningar gick snabbare. Utan att vara för exakt så drog vi ner tiden från runt 20 sekunder till tre (3) sekunder i laddningstid. Anledningen? Sajten hade 4989 MiB bilder på disk. Tänk på att om du aktiverar valet i wp_sitemeta
gäller det för alla bloggar.
Nästa stora tjuv i tid var NextGen Gallery som också använder get_dirsize()
. I vår version (1.4.3) tar den ingen ingen hänsyn till upload_space_check_disabled vilket gör att pluginen hela tiden försöker räkna ut katalogstorleken för bilderna. Tidskrävande när man har nästan 5 GiB bilder. I wp-content/plugins/nextgen-gallery/admin/overview.php
kunde vi hitta:
add_meta_box('dashboard_right_now', __('Welcome to NextGEN Gallery !', 'nggallery'), 'ngg_overview_right_now', 'ngg_overview', 'left', 'core'); add_meta_box('dashboard_primary', __('Latest News', 'nggallery'), 'ngg_overview_news', 'ngg_overview', 'right', 'core'); add_meta_box('ngg_lastdonators', __('Recent donators', 'nggallery'), 'ngg_overview_donators', 'ngg_overview', 'left', 'core'); add_meta_box('ngg_server', __('Server Settings', 'nggallery'), 'ngg_overview_server', 'ngg_overview', 'left', 'core'); add_meta_box('dashboard_plugins', __('Related plugins', 'nggallery'), 'ngg_related_plugins', 'ngg_overview', 'right', 'core'); add_meta_box('ngg_gd_lib', __('Graphic Library', 'nggallery'), 'ngg_overview_graphic_lib', 'ngg_overview', 'right', 'core');
Den koden lägger ut de fina boxarna på en överblicksbild för NextGen Gallery, inget av det är cachat utan körs varje gång. Så vi avkommenterade helt enkelt raderna med boxar vi inte ville ha:
add_meta_box('dashboard_right_now', __('Welcome to NextGEN Gallery !', 'nggallery'), 'ngg_overview_right_now', 'ngg_overview', 'left', 'core'); //add_meta_box('dashboard_primary', __('Latest News', 'nggallery'), 'ngg_overview_news', 'ngg_overview', 'right', 'core'); //add_meta_box('ngg_lastdonators', __('Recent donators', 'nggallery'), 'ngg_overview_donators', 'ngg_overview', 'left', 'core'); //add_meta_box('ngg_server', __('Server Settings', 'nggallery'), 'ngg_overview_server', 'ngg_overview', 'left', 'core'); //add_meta_box('dashboard_plugins', __('Related plugins', 'nggallery'), 'ngg_related_plugins', 'ngg_overview', 'right', 'core'); //add_meta_box('ngg_gd_lib', __('Graphic Library', 'nggallery'), 'ngg_overview_graphic_lib', 'ngg_overview', 'right', 'core');
Det enda som är intressant att veta är ju hur många bilder och gallerier vi har. Dessutom skapar siffrorna en länk till funktionen för att lägga till ett nytt galleri. Användbart.
I senare versioner av NextGen Gallery har de faktiskt tagit med kontroll om vi har avaktiverat quotan i wp_sitemeta så den hoppar över storleksberäkningen. Tyvärr måste man köra WordPress 3.1 eller högre för att kunna använda den pluginversionen. Så vi får nog planera för en uppgradering snart.
Lite siffror för dig som känner dig lika nördig som jag:
$ du -sh files/ 5,0G files/ $ find files/ | wc -l 51948