Back to top

Autore Topic: Menù dinamici e prestazioni di Joomla  (Letto 4892 volte)

Offline Den_

  • Esploratore
  • **
  • Post: 113
    • Mostra profilo
Menù dinamici e prestazioni di Joomla
« il: 27 Gen 2010, 21:09:25 »
Salve a tutti, non sò se vi è mai capitato di avere nel vostro sito 26 sezioni e 200 categorie, spero di si, magari anche di più. Ho incontrato una gran difficoltà in tempi di query da parte di joomla per adempire alla creazione di due menù dinamici che caricano rispettivamente due grandi gruppi di sezioni e a cascata poi le categorie.
Ho visualizzato il debug del sito e mi son trovato di fronte a caricamenti di menù che producono attese di 11,5 secondi e un'ammontare di query pari a circa 180 interrogazioni al DB due delle quali da 5 e 6 secondi.
Esiste un modulo o un diverso modo già testato per interrogare le tabelle del menù senza che joomla controlli poi tasli corrispondenze dentro le tabelle dei contenuti?

Ovviamente posso aggirare il problema creandomi del codice che le carichi, ma voglio comunque porre il quesito alla comunità di joomla.

Vi ringrazio per la vostra attenzione.

mau_develop

  • Visitatore
Re:Menù dinamici e prestazioni di Joomla
« Risposta #1 il: 27 Gen 2010, 21:12:57 »
, spero di si,
--------------
io invece spero proprio di no :)

non puoi dividere su più sottodomini?

M.

Offline 56francesco

  • Fuori controllo
  • *
  • Post: 29585
  • Sesso: Maschio
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #2 il: 27 Gen 2010, 21:15:46 »
Benvenuto nel forum..

il tempo 11,5 secondi non è determinato solo dal numero, ma dal nr per il tempo di accesso..

purtroppo negli hosting condivisi se non ti lamenti capita questo ed altro, invece che improbabili modifiche al core di joomla se proprio non puoi rimediare ad esempio con dei sottomenù imho puoi solo lamentarti con l'hosting perchè ti sposti in una macchina meno piena di siti o meglio organizzata (magari con sito e database sullo stesso disco)


(uso XP perchè win98 non si installa) 
PS: non sono un dipendente dello sbonzor quindi è necessario un "per favore" alla richiesta e un "grazie" alla risposta, sempre! PPS: non scrivo mai per primo in MP, in caso contrario chiedimi una conferma, Grazie.

Offline Den_

  • Esploratore
  • **
  • Post: 113
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #3 il: 28 Gen 2010, 19:18:03 »
Grazie per l'interessamento, in effetti non sò come sia organizzato il mio hoster, ma non parliamo di certo di aruba o Altervista o altri hoster Free, spero che siano ben organizzati e cercherò di lavorare in tal senso.

Le categorie sono organizzate in modo piramidale come per le sezioni!
Stessa cosa vale per il sito fatto girare in locale nel mio PC.

Preciso che ho un Quad core 6.6 GHz e 4 GB di ram in configurazione 32 Bit. Non ho provato il sito in linux con un sistema a 64 Bit che può emulare software a 32 Bit, e monta 8 GByte di RAM, come sistema WEB server per comodità uso XAMPP.

Resta il fatto che in configurazione Win i tempi sono simili a quelli del mio hoster, anzi un pochino più lenti!

In definitiva per discernere la fonte del problema ho eliminato i due menù e i tempi di caricamento del sito sono scesi a meno di un secondo.

Questo perchè Joomla ricontrolla tutte le categorie all'interno della tabella dei contenuti e mi sembra una cosa un pò assurda considerato che i menù io li ho già creati nell'apposita interfaccia!!!!!!!!

Che mi consigliate?

Grazie

Offline 56francesco

  • Fuori controllo
  • *
  • Post: 29585
  • Sesso: Maschio
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #4 il: 28 Gen 2010, 19:21:37 »
ma stai lavorando in locale?

come detto evita modifiche al core, e comunque questa non è la sezione giusta, se preferisci ti sposto nella sezione sviluppo..
(uso XP perchè win98 non si installa) 
PS: non sono un dipendente dello sbonzor quindi è necessario un "per favore" alla richiesta e un "grazie" alla risposta, sempre! PPS: non scrivo mai per primo in MP, in caso contrario chiedimi una conferma, Grazie.

Offline Den_

  • Esploratore
  • **
  • Post: 113
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #5 il: 28 Gen 2010, 21:32:39 »
Ho il sito sia in locale che online e in entrambi i casi ho lo stesso problema.

Non è mia intenzione intervenire a livello di Core, se mai mi scrivo del codice PHP per gestire al meglio solo questa cosa.

Non capisco però come mai nessuno sia incappato in questi casi.

Considerate che ho la tabella dei contenuti che è dell'ordine di 270.000 righe e dovrà aumentare di certo.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #6 il: 28 Gen 2010, 23:33:41 »
molti sono incappati in casi come il tuo.
ti do un indizio: se nel file configuration.php del sito in joomla il server db è indicato come localhost potrebbe essere una buona cosa cambiare provider... è un indizio e non una prova, ma...


in caso di db le performance non sono date dalla cpu ma dal filesystem, e se su questo debbono girare anche web server, application server, mail server...  :(

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline Den_

  • Esploratore
  • **
  • Post: 113
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #7 il: 28 Gen 2010, 23:49:14 »
Ho provato a cambiare il nome errato nel file di configurazione con il nome di dominio che fà riferimento al server SQL, ma non cambia nulla.

Beh io ho inserito le prestazioni del mio pc in locale sul quale posso fare prove dirette e smanettarci un pò di più rispetto all' host!

Se hai in mente la soluzione condividila pure.

Ciao Den

Offline Den_

  • Esploratore
  • **
  • Post: 113
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #8 il: 29 Gen 2010, 01:12:28 »
Salve ragazzi, ora sto lavorando da linux distribuzione ubuntu con 8 GB di RAM all'attivo e un file system differente.

Pure il server dell' hosting è in linux ma non sò quale distribuzione quindi credo che il file system più o meno sia lo stesso.

Così nel mio pc in locale ho ridotto i tempi di attesa a circa la metà! Ma credo solamente perchè ho più risorse da dedicargli.

Magari questa nota vi sa spunto a soluzioni diverse dal classico potenzia il tuo hardware o cose simili!

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #9 il: 29 Gen 2010, 09:19:28 »
ciao, mi sa che sono stato poco chiaro :( e che hai frainteso...

io volevo suggerire che se il provider ti dice di usare localhost sul server di produzione (ovvero quello del sito in linea) come indirizzo del server db allora c'è qualcosa che non va, e difficilmente potrai migliorare le prestazioni. il server db deve stare su una macchina dedicata.

a casa, od in sviluppo, poi è un'altra cosa: io ho tutto 'ammassato' dentro una virtual machine ;) ; qui tempi di attesa dell'ordine dei secondi sono seccanti ma accettabili.

ps: in questi casi file system va inteso sì come tipo di fs, ma anche come infrastruttura hardware sottostante e di solito si parla di dischi SAS da 15K giri, veloci ma costosetti: diversi provider per risparmiare, nelle offerte a basso costo, usano dischi SATA, ed i risultati poi si vedono.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline 56francesco

  • Fuori controllo
  • *
  • Post: 29585
  • Sesso: Maschio
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #10 il: 29 Gen 2010, 09:32:37 »
Citazione
io volevo suggerire che se il provider ti dice di usare localhost sul server di produzione (ovvero quello del sito in linea) come indirizzo del server db allora c'è qualcosa che non va, e difficilmente potrai migliorare le prestazioni. il server db deve stare su una macchina dedicata.
non saprei se il database in localhost sia più lento, comunque più lento è un concetto relativo imho sarà sempre più veloce di una diversa configurazione che veda si il database su un server dedicato ma residente in una macchina localizzata a milano mentre il sito risiede in un server in america.. se non altro perchè il numero di km è minore..
per non parlare del numero di siti serviti in rapporto al nr degli ip dedicati alla stessa macchina..
localhost imho negli hosting condivisi (modificato era: server dedicati) rende  sempre una idea di misura definita diversamente sta tutto alla "bontà" dell'hosting e in tempo di utilizzo al limite delle risorse io alla bontà non ci credo..
 ;)
ma come detto non sono un tecnico..

« Ultima modifica: 29 Gen 2010, 09:36:59 da 56francesco »
(uso XP perchè win98 non si installa) 
PS: non sono un dipendente dello sbonzor quindi è necessario un "per favore" alla richiesta e un "grazie" alla risposta, sempre! PPS: non scrivo mai per primo in MP, in caso contrario chiedimi una conferma, Grazie.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #11 il: 29 Gen 2010, 09:54:07 »
ovviamente è tutto relativo e non si possono dare giudizi senza conoscere che cosa ci sia dietro: per questo ho parlato di indizi  ;)

il server db è molto critico dal punto di vista dell'accesso alle memorie di massa, tanto è vero che le soluzioni high-end vogliono dischi riservati e formattati con il proprio file system proprietario. per questo ho detto che, di solito, non è un buon indizio che il server db sia sulla stessa macchina dedicata a tutti gli altri servizi.

ovviamente poi dipende da tanti fattori, quali la tipologia delle macchine (meglio in due su una ferrari che da soli su una panda ;) ), il numero di utenti sulla macchina, come giustamente dici tu, come è scritto il codice e così via.

finché il sito è veloce bene, tuttavia quando la macchina comincia a battere in testa io guardo anche quell'aspetto ;)

ciao,
marco

mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline Den_

  • Esploratore
  • **
  • Post: 113
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #12 il: 29 Gen 2010, 10:23:25 »
Daccordissimo, però non posso mettere su un Blade o crearmi uan struttura per andar forte con 300.000 righe e io spero di arrivare ad almeno qualche milione!!!

E quanto mi costa una soluzione del genere.

Sotto questo profilo forse dovrebbe essere rivisto il ragionamento del core che segue il caricamento dei menù dinamici o al limite integrato un modulo che si preoccupa di caricarli.

Secondo me la cavolata è che debbano essere ricontrollate per ogni categoria / sezione ogni qualvolta anche le tabelle dei contenuti...mi pare strano!

Grazie, per l'interessamento

Offline 56francesco

  • Fuori controllo
  • *
  • Post: 29585
  • Sesso: Maschio
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #13 il: 29 Gen 2010, 10:35:27 »
tieni/tenete presente che joomla è pensato e scritto per utenti che non sanno niente di informatica o che comunque possono anche non saperne niente..
da questo punto di vista direi che quando si gestiscono certi volumi sono presenti figure professionali in grado di customizzare non solo il core stesso ma di trarne fuori dei progetti totalmente diversi che seguono una loro strada anche disinteressandosi degli aggiornamenti e della condivisione della conoscenza..

da questo punto di vista ad esempio imho complicare la struttura di joomla con l'ACL o con gestioni differenziate delle immagini o del database (come in questa richiesta)  è una strada che agevola la scalata della immaginaria piramide verso l'utente evoluto ma tira su di qualche scalino anche la sua base con quel che ne consegue..
per dire, che quelli che possono sembrare difetti a volte sono pregi e non viceversa..
fermo restando che tutto può essere migliorato e che sarebbe interessante verificare cosa accade nella versione 1.6  che è fatta ad och per voi utenti evoluti e non per noi comuni praticoni..

(uso XP perchè win98 non si installa) 
PS: non sono un dipendente dello sbonzor quindi è necessario un "per favore" alla richiesta e un "grazie" alla risposta, sempre! PPS: non scrivo mai per primo in MP, in caso contrario chiedimi una conferma, Grazie.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #14 il: 29 Gen 2010, 10:36:27 »
sì, scusa siamo andati un po' OT  :(

comunque i menù, lato front end sono moduli che possono permettersi di avere poche relazioni con il core di joomla, quindi una riscrittura con una query ottimizzata è probabilmente la soluzione più valida.

ciao,
marco


mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #15 il: 31 Gen 2010, 17:11:33 »
giusto qualche spunto:

squid/memcache/cache joomla/mysql cache/benchmark/reverse engineering/indici mysql/mysql tuning

dopo che hai provato tutte queste hai ancora tutti questi problemi?

Il menu che usi è lo standrd i Joomla? no, non credo. Come hai formulato le query?

Offline Den_

  • Esploratore
  • **
  • Post: 113
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #16 il: 02 Feb 2010, 12:08:42 »
Grazie per la dritta, in effetti ne sto provando un pò di cose trovate qua e là per internet.

Indici li ho inseriti secondo quanto scritto in altri siti come http://www.joomlaperformance.com/ , e http://www.ircmaxell.com/articles/joomla/improving-joomlas-queries.html ma non influiscono molto.

Dalla mia esperienze lavorative evinco che si tratta di query e di certo gli indici sono di aiuto.

Ho utilizzato tutto ciò che c'è di standard nel pacchetto base di joomla, anzi , per vedere se altri menù funzionassero meglio li ho provati ma alla fine applicano solo l' output override al core, quindi le query rimangono le stesse. Secondo quanto letto qui: http://www.joomlaperformance.com/forums/func,view/id,2454/catid,14/ è un problema della versione 1.5.

Vi posto la query in questione per le sezioni:
(\htdocs\components\com_content\models\section.php)


#
SELECT a.id, a.title, a.alias, a.title_alias, a.introtext, a.fulltext, a.sectionid, a.state, a.catid, a.created, a.created_by, a.created_by_alias, a.modified, a.modified_by, a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.attribs, a.hits, a.images, a.urls, a.ordering, a.metakey, a.metadesc, a.access, CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(':', a.id, a.alias) ELSE a.id END AS slug, CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END AS catslug, CHAR_LENGTH( a.`fulltext` ) AS readmore, u.name AS author, u.usertype, cc.title AS category, g.name AS groups, u.email AS author_email
  FROM jos_content AS a
  INNER JOIN jos_categories AS cc
  ON cc.id = a.catid
  LEFT JOIN jos_sections AS s
  ON s.id = a.sectionid
  LEFT JOIN jos_users AS u
  ON u.id = a.created_by
  LEFT JOIN jos_groups AS g
  ON a.access = g.id
  WHERE a.access <= 0
  AND s.id = 27
  AND s.access <= 0
  AND cc.access <= 0
  AND s.published = 1
  AND cc.published = 1
  AND a.state = 1
  AND ( publish_up = '0000-00-00 00:00:00' OR publish_up <= '2010-02-02 10:58:06' )
  AND ( publish_down = '0000-00-00 00:00:00' OR publish_down >= '2010-02-02 10:58:06' )
  ORDER BY  a.created DESC



Mi chiedo come mai questo tipo di controllo, partendo dal contenuto! Cioè capisco che questa query identifica se una sezione deve essere pubblicata o meno a seconda solo se contiene articoli e altre varie cose, ma così stiamo a rallentare un bel pò le operazioni!

Basterebbe se mai mettere una semplice scritta che la Sezione non contiene articoli o categorie.


Offline Den_

  • Esploratore
  • **
  • Post: 113
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #17 il: 09 Feb 2010, 00:19:06 »
Salve ragazzi, la mia ricerca in merito continua.
In particolare ho scoperto che la lentezza è dovuta ai seguenti passaggi nel file /components/com_contenet/views/section/view.html.php

// Get some data from the model
   $items      = & $this->get( 'Data');
   $total      = & $this->get( 'Total');
   $categories   = & $this->get( 'Categories' );
   $section   = & $this->get( 'Section' );

Queste sono le procedure che fanno le chiamate colpevoli di tale lentezza.

Offline Den_

  • Esploratore
  • **
  • Post: 113
    • Mostra profilo
Re:Menù dinamici e prestazioni di Joomla
« Risposta #18 il: 26 Mar 2010, 14:17:48 »
Salve Ragazzi, torno a scrivere perché la mia ricerca non si ferma e piano piano sto comprendendo come Joomla tratta i dati. In effetti studiando un pò il CMS sotto il profilo delle tempistiche di caricamento, avvalendomi di Firebug e YSlow noto che si potrebbe far di meglio.

Il problema che ho trattato credo dipenda in parte da come ho organizzato i dati in Joomla, cioè, ho molte categorie che fanno capo ad una sola sezione. Quando vado ad aprire quella sezione posso anche andare a farmi un caffè al bar più distante da casa.

Questo dipende solo dalla modalità di visualizzazione delle sezioni, che se fosse come per le categorie , cioè paginate, permetterebbe una più rapida consultazione delle stesse.

 



Web Design Bolzano Kreatif