Wordpress 3 processzor terhelés

Sziasztok,











Valaki tudja a választ arra, hogy egy szüzen telepített WP3, amiben gyakorlatilag csak a default postok vannak benne, miért csinálja azt, hogy az adminban rákattintok bármelyik menüpontra (pl.: “Bejegyzések”) a szerveren a load elindul szép lassan felfelé. 3-6-9-12 stb.





Amikor ketten használjuk akkor az egész szervert újra kell indítani miatta.











Ezt csak a 3.0-ás WP-nél tapasztaltam, más CMS még hasonlót sem csinál. Linux/Debian 5 az alaprendszer.











Köszi a segítséget.

Szia. Hát ez érdekes probléma, mert ha folyamatosan nől a process, akkor kattintás után is dolgozna tovább a kód ami elég valószínűtlen. Én mondjuk első körben a LAMP valami szokatlan hibájára tippelnék, újra kéne húzni és úgy megnézni. A wordpressből egyébként konkrétan mely verzió(kat) próbáltad, esetleg a 3.2 RC-t is?

Tovább kutakodtam a témában és találtam egy érdekes problémát.











Valamiért használ a WP egy SQL_CALC_FOUND_ROWS és a SELECT FOUND_ROWS() sql kéréseket.





A wp_includes/query.php-ról van szó. A SQL_CALC_FOUND_ROWS alapból overload gyanús.











Találtam egy leírást az orvoslásra:











http://tech-seeker.com/blog/wordpress-3-still-using-slow-sql_calc_found_rows/











Most tesztelem, hogy valóban gyorsít-e ha átírunk néhány alapvető paramétert a query.php-ban.











Természetesen a táblák indexelése alapvető fontosságú.











Akit érdekel csatoltam a query.php módosított verzióját. ([attachment=336:query.php])

a legnagyobb para ezzel az h mindjárt itt a 3.2 inkább annak a forrását elemezd meg nézegesd…

Ez perpill a 3.1.3-as. :slight_smile:

A 3.2 beta1-ben ugyanúgy benne van a SQL_CALC_FOUND_ROWS :smiley:

Szeretem az ilyen botcsinálta kód turkászokat.











Nyilván hülye emberek dolgoznak az Automatticnál, és azt a 20.000.000 blogot a wp.com-on szarul működtetik, szar kóddal…





Gondolkodjatok már egy picit.

kikérem magamnak a többesszámot :slight_smile: igenis van átírt wp-m, de az még 2.3ra épült és nem is tudom mi az ami még eredeti belőle :slight_smile: de ez nem ide tartozik… ettől függetlenül a wp kódjában azért akadnak hibák nem azért mert emberek hülyék, hanem mert nagy rendszer amit rengetegen fejlesztenek. Tehát simán lehetnek logikai síkon elcsúszott dolgok is… de lekódolni is irgalmatlan összetett ezeket a dolgokat… szóval csak annyit, hogy persze nem tökéletes a rendszer, de hát melyik az. viszont használható, viszonylag easy-to-use még komolyabb környezetben is…











ami konkrétan feltűnik (memory leak stb) azokat a hibákat meg kell próbálni lekövetni, be kell jelenteni és ha kritikus akkor a köv. kiadásban befoltozzák…

Nem neveztünk hülyének senkit.





A kód nem szar, csak bizonyos része felesleges memóriát visz el.











Visszatérve a probléma megoldásra:











SELECT COUNT() ilyet sem feltétlenül használunk.











Elnézve a táblák szerkezetét nincs egységes id mező!!





Így nem tudunk semmi mást rakni a * helyére.











Ezért a query.php-ban a módosítást követően lett egy ilyen SELECT COUNT(
) sor, én ezt kikommenteztem teszt jelleggel.











// $found_posts_query = apply_filters_ref_array( 'found_posts_query', array( 'SELECT COUNT(*) FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby', &$this ) );











Egyenlőre nincs hiba, de a szűz rendszer telepítés utáni állapot és a mostani között jelentős sebességjavulás érezhető.











Azt még nem tudom, hogy pontosan mit érint a found_posts_query lekérés de majd a tesztelés során kiderül.





Ennyit találtam róla: http://adambrown.info/p/wp_hooks/hook/found_posts_query











Amit még beállítottam a wp-config.php fileban az alábbiak voltak:











define('WP_POST_REVISIONS', false);





define('AUTOSAVE_INTERVAL', 300 );





define('EMPTY_TRASH_DAYS', 0 );





define('WP_ALLOW_REPAIR', true);





define('DISALLOW_FILE_EDIT',true);











Az optimalizálás a cél. :slight_smile:











És természtesen WP Super Cache (sokat segít)

Aha, csak a COUNT(*) az SQL tábla leírójából olvassa ki az értéket,





míg ha mezőt írsz bele, az valóban lefuttatja a countot.