Jump to content

Pomalá odezva při 30.000 položek na VPS u Wedosu


RadekPernica

Recommended Posts

Zdravím všechny,

 

nedokáže nám někdo poradit s optimalizací rychlosti odezvy u PrestaShop™ 1.4.7.3 ?

 

Eshop sporthall.cz má v současné době 30.000 produktů a běží na VPS wedosu s 2GB RAM. Bohužel odezva je docela pomalá, kategorie nenacashované okolo 5 sekund :-( .

 

Pokud by to někdo dokázal pořešit za nás odměna ho nemine ;-) .

Link to comment
Share on other sites

  • TOTAL_HTML - Congratulations, the total number of HTML files on this page (including the main HTML file) is 1 which most browsers can multithread. Minimizing HTTP requests is key for web site optimization. Y
  • TOTAL_OBJECTS - Warning! The total number of objects on this page is 47 which by their number will dominate web page delay. Consider reducing this to a more reasonable number. Above 20 objects per page the overhead from dealing with the actual objects (description time and wait time) accounts for more than 80% of whole page latency. See Figure II-3: Relative distribution of latency components showing that object overhead dominates web page latency in Website Optimization Secrets for more details on how object overhead dominates web page latency. Combine, refine, and optimize your external objects. Replace graphic rollovers with CSS rollovers to speed display and minimize HTTP requests. Consider using CSS sprites to help consolidate decorative images. Using CSS techniques such as colored backgrounds, borders, or spacing instead of graphic techniques can reduce HTTP requests. Replace graphic text headers with CSS text headers to further reduce HTTP requests. Finally, consider optimizing parallel downloads by using different hostnames or a CDN to reduce object overhead.
  • TOTAL_IMAGES - Warning! The total number of images on this page is 31 , consider reducing this to a more reasonable number. Recommend combining, replacing, and optimizing your graphics. Replace graphic rollover menus with CSS rollover menus to speed display and minimize HTTP requests. Consider using CSS sprites to help consolidate decorative images. Use CSS techniques such as colored backgrounds, borders, or spacing instead of graphic techniques to reduce HTTP requests. Replace graphic text headers with CSS text headers to further reduce HTTP requests. Finally, consider optimizing parallel downloads by using different hostnames to reduce object overhead.
  • TOTAL_CSS - Congratulations, the total number of external CSS files on this page is 2 . Because external CSS files must be in the HEAD of your HTML document, they must load first before any BODY content displays. Although they are cached, CSS files slow down the initial display of your page. Remember to place CSS files in the HEAD and JavaScript files at the end of the BODY to enable progressive display.
  • TOTAL_SIZE - Warning! The total size of this page is 1900559 bytes, which will load in 388.18 seconds on a 56Kbps modem. Consider reducing total page size to less than 100K to achieve sub 20 second response times on 56K connections. Pages over 100K exceed most attention thresholds at 56Kbps, even with feedback. Consider optimizing your site with Website Optimization Secrets, Speed Up Your Site or contacting us about our optimization services.
  • TOTAL_SCRIPT - Warning! The total number of external script files on this page is 13 , consider reducing this to a more reasonable number. Combine, refactor, and minify to optimize your JavaScript files. Ideally you should have one (or even embed scripts for high-traffic pages) on your pages. Consider suturing JavaScript files together at the server to minimize HTTP requests. Placing external JavaScript files at the bottom of your BODY, and CSS files in the HEAD enables progressive display in XHTML web pages.
  • HTML_SIZE - Congratulations, the total size of this HTML file is 2909 bytes, which less than 50K. Assuming that you specify the HEIGHT and WIDTH of your images, this size allows your HTML to display content in under 10 seconds, the average time users are willing to wait for a page to display without feedback.
  • IMAGES_SIZE - Warning! The total size of your images is 1833835 bytes, which is over 100K. Consider switch graphic formats to achive smaller file sizes (from JPEG to PNG for example). Finally, substitute CSS techniques for graphics techniques to create colored borders, backgrounds, and spacing.
  • SCRIPT_SIZE - Warning! The total size of external your scripts is 61953 bytes, which is over 20K. Consider optimizing your JavaScript for size, combining them, and using HTTP compression where appropriate for any scripts placed in the HEAD of your documents. You can substitute CSS menus for JavaScript-based menus to minimize or even eliminate the use of JavaScript.
  • CSS_SIZE - Congratulations, the total size of your external CSS is 1862 bytes, which is less than 8K.
  • MULTIM_SIZE - Congratulations, the total size of all your external multimedia files is 0 bytes, which is less than 10K.

Link to comment
Share on other sites

Info od programátora:

 

Toto nám bohuzel neresi nas problem ... toto je nastaveni pro zoptimalizovani HTML (frontendu) ... resp. tyto veci nejsou zavisle na poctu produktu.

 

Jde o to, ze tyto veci bychom resili v okamziku, kdy by presta jela pomalu i pri mensim poctu produktu. Coz nejede.

Link to comment
Share on other sites

Máte aktivní modul block layered navigation? Pokud ano pak může dělat problémy a zejména pokud by si správně vše nenacachoval. Tento modul činí velmi často výkonostní problémy-neustále se v něm vývojáři hrabou a je toho plný forge.

 

Další možnost problému je volba VPS a konfigurace komponent webserveru nebo obecně problém se čtením z disku(zkuste CDN, nebo mediální aliasy), i tak si myslím že vám eshop běží na prestu slušně.

 

A poslední tip je jaký storage pro DB je použit? inno nebo myisam? Presta team už nějakou dobu pro větší shopy doporučuje innodb.

 

Vaše řešení, případně, napište pokud se to podaří.

 

PS: k 15ctému by měla vyjít další verze presty s hromadou bugfixů...howgh

Link to comment
Share on other sites

Spravuji prestu, která má 35000 položek a také byl problém s pomalým načítáním. Jednoznačně jsem osekal co se dalo. Velký problém byly například vlastnosti produktů. Databáze jela na innodb a tam byl problém řádně vytunit nastavení mysql. Tak jsem převedl databázi na myisam. Nejen že se databáze zmenšila asi o 30% ale zrychlilo se načítání stránek asi dvojnásobně.

  • Like 1
Link to comment
Share on other sites

1) modul block layered je aktivni (jedna se o ten filtr)

zkousel jsem ho vypinat a moc se rychlost nemeni. Problem bude v normalnim tahani dat z DB

 

2) CDN ... neni mozne, musel bys mi rozlozeny data na vice paralelnich serveru

 

3) pouziva se innodb

 

ad 1) pokud jste vycistil cache prohlizece i smarty po vypnuti modulu a nepozoroval jste zlepseni aspon o 1-2 sec pak tento modul u vas jde dobre, jeste je moznost pokud pouzivate modul statistik ho zkusit deaktivovat jinak je to pravdepodobne problem jen s DB, ale muze byt od problemove verze PS, konfigurace serveru tak i kvuli tomu ze to jede na VPS - vykonove

 

ad 2) pokud nechcete pouzit cdn tak je druha moznost pouzit jednoduse media servers, staci si pridat 3 domeny 3.radu, nastavit v preste a zkusit to. Bohuzel ani tahle uprava neni bez problemu...treba to ale ve verzi 1.4.9.x pujde

 

ad 3) prakticky si muzete udelat klon eshopu na domene 3.radu na stejnem stroji a zvolit jinou DB storage a vse si otestovat-mate prece vps...

Edited by XM4N (see edit history)
Link to comment
Share on other sites

Je to postavené na verzi 1.4.6.2. http://www.primaknihy.cz

(ještě tam trochu brzdí dva upravené moduly na úvodní stránce - náhodné generování produktů

 

hm hm koukám moc pěkně ti to chodí, jak to myslíš řádně vytunit nastavení mysql?

Ještě jsem nepřeváděl na jinou db ale něco otom počtu prže se my ta rychlost fakt líbí, mám to na wedosu taky takový jak kdy všelijaký a bojím se čím víc budu přidávat produktů bude to jen horší

Link to comment
Share on other sites

Pokud někdo používá klasický hosting, který mu stačí na pár stovek až tisíc produktů, tak se vlastně nemusí o nic z nastavení starat.

Problém nastane, když se přesune na stroje, které je nutno si spravovat. A tam je právě důležité, nejen řádně nastavit php, ale nejdůležitější je nastavit databázový server, který je po čisté instalaci nastaven na malý provoz a také na tabulky v myisam. Bohužel presta v základní instalaci nastavuje tabulky na innodb a tak nemají v databázi skoro žádnou podporu.

Ten tuning databáze je ve smyslu co nejlepšího nastavení paměti pro cache a dalších parametrů, což je poměrně složité pro innodb. Já jsem například musel dát 1024 mega paměti pro innodb_buffer a o ty jsem musel navýšit vps.

Ten převod tabulek je jednoduchý a dělá se v BO na prestě. Trvalo mi to asi minutu.

Link to comment
Share on other sites

Spravuji prestu, která má 35000 položek a také byl problém s pomalým načítáním. Jednoznačně jsem osekal co se dalo. Velký problém byly například vlastnosti produktů. Databáze jela na innodb a tam byl problém řádně vytunit nastavení mysql. Tak jsem převedl databázi na myisam. Nejen že se databáze zmenšila asi o 30% ale zrychlilo se načítání stránek asi dvojnásobně.

Chyba bude spíš v tom tunění. Když se podíváš na benchmarky (http://www.mysqlperformanceblog.com/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/), tak je InnoDB vždy rychlejší než MyISAM. A to i řádově.

 

Navíc má další výhody (namátkou: z pádu serveru anebo databáze se dokáže líp oklepat bez poškození dat). Bere si víc na disku i paměti, ale to snad není velký problém. Kompletní porovnání (v angličtině) je na http://tag1consulting.com/MySQL_Engines_MyISAM_vs_InnoDB.

Link to comment
Share on other sites

  • 1 year later...

Rád bych také přispěl k tématu odezvy.

Teď jsem si nainstaloval čistý prestashop 1.5.6.1 ,který krásně frčí. Hned jak jsem do něj importoval zákazníky a adresy (150) ze staré presty 1.4.7 tak se odezva natáhla na 2 až 3 sekundy. Zatím je na e-shopu jen asi 10 položek zboží.

Už opravdu nevím co dál.

Link to comment
Share on other sites

  • 3 months later...
  • 1 year later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...