it-swarm-eu.dev

drupal zvýšení rychlosti webu

Používám web drupal s tématem z rockettheme.

Uživatelé jsou členové. Problém je z neznámého důvodu, stránky jsou velmi pomalé. Otevření stránky trvá asi 20 sekund.

Snažil jsem se přepnout VPS, ale žádné zvýšení výkonu.

Nepoužívám mnoho modulů, které by zapadly na stránky.

Jaká možná řešení bych se měl podívat na zvýšení rychlosti webu, aby se otevřel v normálním čase.

Bylo provedeno 120 dotazů za 113,52 milisekundy. Dotazy trvající déle než 5 ms a dotazy prováděné vícekrát jsou zvýrazněny. Doba provedení stránky byla 2534,15 ms.

Bylo provedeno 87 dotazů za 24,6 milisekundy. Dotazy trvající déle než 5 ms a dotazy prováděné vícekrát jsou zvýrazněny. Doba provedení stránky byla 2609,59 ms.

Bylo provedeno 123 dotazů za 41,05 milisekundy. Dotazy trvající déle než 5 ms a dotazy prováděné vícekrát jsou zvýrazněny. Doba provedení stránky byla 1282,27 ms.

Myslím, že to není normální.

7
Nikhil

Aktualizace:

Našel jsem jeden konkrétní soubor mootools.js zabere hodně času načíst do ylsow, ale otevření souboru přímo - není žádné zpoždění.

To je nakonec docela dobrý tip - je MooTools opravdu vyžadován? Drupal používá jQuery výhradně v jádru a většina přispěných modulů to dělá stejně, takže prosím vezměte na vědomí, že použití více než jednoho hlavního rámce JavaScriptu současně, pokud je to možné, většinou vývojáři většinou nedoporučují, obvykle - vyžaduje specializované zpracování alespoň a může zavést všechny divné (tj. obtížně laditelné) problémy bez ohledu na:
Najdete mnoho souvisejících příspěvků v rámci jQuery + MooTools o přetečení zásobníku, podívejte se na tuto příkladnou odpověď na Mootools and JQuery Integration zmínka o obrovské stránce konkrétně zpomaluje.

Vzhledem k tomu, že nepoužíváte mnoho modulů , domnívám se, že pouze MooTools požaduje pouze izolovaná oblast funkcionality, a proto navrhuji, abyste tuto možnost úplně vypnuli (tj. Ujistěte se, že mootools.js je není načten) a zjistěte, zda to má nějaký význam.


Můžete si prohlédnout různé odpovědi na příslušná otázka na Stack Overflow - zatímco se většinou překrývají s odpověďmi uvedenými zde mezitím, v komentářích se zde a tam objevují další rozhledy.

Kromě toho bych rád znovu zdůraznil jednu důležitou věc, jak již zmínili DisgruntledGoat a bpeterson76 do určité míry (každý +1):

Přestože Drupal není na prvním místě nejrychlejší CMS, časy načítání stránky, které vidíte , nejsou vůbec normální ( i když je to možné na špatně nakonfigurovaných systémech/serverech) - proto byste měli nejprve analyzovat a identifikovat příčinu , než použijete optimalizace jakéhokoli druhu! Určitě, některé doporučené optimalizace mohou pomoci i bez toho, ale zlatým pravidlem pro optimalizaci výkonu (a dalších) je pochopení problému spíše než pokus a chyba.

Chcete-li začít, rád bych komentoval tři nastolená témata a poskytl ukazatel podrobnější dokumentace týkající se předmětu níže:

Snažil jsem se přepnout VPS, ale žádné zvýšení výkonu

  • Dobře, přesto byste si měli výslovně zkontrolovat, zda používaný zásobník VPS a LAMP v první řadě funguje normálně (tj. Bez Drupalu)?
    • Odpověď od bpeterson76 řeší možné příčiny.

Myslím, že hlavním viníkem je téma.

  • Pak byste měli tento předpoklad ověřit, což lze snadno provést přepnutím na jiné téma, nejlépe na téma se známými výkonovými charakteristikami, např. výchozí téma Garland.

Nemyslím si, že je dotaz SQL chybný.

  • Už jste si uvědomili, že byste měli tento předpoklad ověřit také - k tomuto lze přistupovat různým způsobem, začínám s devel modul , který má různé nabídky týkající se protokolování výkonu včetně doby provádění SQL (ostatní věci jsou samozřejmě také užitečné).
    • Upozorňujeme, že pro přesnější časy provádění SQL byste se měli uchýlit k vyhrazeným nástrojům pro používaný databázový systém.

To vše a ještě mnohem více je řešeno prostřednictvím Drupal cache, rychlost a výkon - tento zdrojový rozbočovač se na první pohled může zdát ohromující, ale jak jsem řekl porozumění problém je klíčem pro řešení problémů s výkonem - pro umožnění skokového startu nakonec nakonec doporučuji přečíst si úvahy o ladění server , zejména sekci Porozumění a konfigurace zásobníku pro výkon .

Hodně štěstí!

1
Steffen Opel

Pokud je načítání stránky 20 sekund, je pravděpodobné, že někde dojde k velkému omezení. APC by to mohlo snížit na 5-10 sekund, ale to stále ještě není dost dobré na straně serveru. A nepomůže, pokud je problémem dotaz SQL.

Moduly mohou stránky trochu zpomalit, ale ne o tolik. Zkuste postupně deaktivovat každou z nich a zjistit, zda nedošlo k nějakým velkým vylepšením.

Dalším řešením, pokud nemůžete zvýšit rychlost, je mnohem více ukládat stránky do mezipaměti. S různými weby (pomocí CodeIgniter) jsem zjistil, že to dělá obrovský rozdíl - server okamžitě reaguje a vy máte opravdu jen čas na straně klienta.

V závislosti na tom, co zahrnete do 20 sekundového zpoždění (tj. Pouze na straně serveru nebo na straně klienta), se vám může zdát užitečná stránka Yahoo's Best Practices .


Chcete-li zjistit, kde je úzký profil, podívejte se na moduly profiler pro Drupal (pokud existují), řeknou vám, ve kterých částech je kód pomalý. Nebo můžete do šablony přidat vlastní časový kód:

$time1 = microtime();
// some chunk of code
$time2 = microtime();
// another chunk of code
$time3 = microtime();
echo 'First chunk: ', ($time2-$time1/1000), ' seconds';
echo 'Second chunk: ', ($time3-$time2/1000), ' seconds';

Opakujte to na různých místech a měli byste být schopni jej zúžit na část nebo dvě části, která běží 10-20 sekund.

4
DisgruntledGoat
  • Použijte mezipaměť opcode jako APC
  • Použijte nástroj jako xDebug a zjistěte, kde jsou vaše úzká místa. Tímto způsobem budete vědět, na co se musíte zaměřit, místo jen hádání.
3
John Conde

Při vytváření aplikací PHP jsem zjistil, že pomocí Firefoxu nebo vývojářských nástrojů prohlížeče Chrome mohu odstranit úzká místa nízké úrovně. Klikněte na kartu zdroje a sledujte, jak se prvky načítání stránky. Je to zvláště cenné, když pracujete s požadavky XHR (AJAX).

Začněte pingem na server. Mám stroj Dev, který byl v podobné situaci druhý den .... Stroj Dev se plazí a načítání trvá déle než 10 sekund. Ale mám stejný kód na jiném identickém (ale vyhrazeném) serveru, který běží rychle. Testování pingem je bolestně pomalé. Ukázalo se, že stroj je sdílen a jeden z ostatních lidí, kteří mají účet na serveru, provozuje web s velkou šířkou pásma (pravděpodobně web pro dospělé), který zpomaluje všechny ostatní. Tento porušující web je nyní hostem přesunut.

Xdebug je určitě dobrá volba, jak je uvedeno výše. Ale ne vždy se dostane ke zdroji problému, pokud nejsou hozeny chyby. Nejdříve bych začal s protokolem chyb, ujistěte se, že se nevytváří více. Pak Xdebug.

Postupně bych sledoval deaktivaci funkcí jeden po druhém. Rovněž by bylo vhodné sledovat zatížení serveru, aby se zajistilo, že něco nesouvisejícího nezasahuje procesy MySql nebo Apache.

A konečně, pokud problém stále není vyřešen, izoloval bych oblasti, o kterých si myslím, že jsou příčinou problému, a vložte počáteční/koncová časová razítka mikrotimu, které vydám do protokolu nebo e-mailu. Zní to hloupě snadno, ale pomocí této metody jsem zjistil zvýšení výkonu o 200% +.

2
bpeterson76

je zapnuto ukládání do mezipaměti v /admin/settings/performance?

Než se dostanete ke složitějším řešením, vyplatí se to dvakrát.

1
WalterJ89

Doporučuji použít Postgresql, drupal ho podporuje.

0
NARKOZ