You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2014-04-23 08:25:20

dgatard
Member
Registered: 2013-01-03
Posts: 11

Lenteur GLPI

Bonjour,
J'ai installé la version 0.84.5 et j'ai de grosses lenteurs (20s d'attente) sur :
- connexion (page login)
- Mes préférences --> Principal
- Tickets --> recherche d'un demandeur dans champs de recherche automatique

J'ai tracé minutieusement le déroulement du code PHP sur la requête Web "Mes préférences" et j'ai fini par mettre le doigt sur le bloc de code qui ralentit tout :

ajax/common.tabs.ph:
  inc/commonglpi.class.php::displayStandardTab()
    inc/user.class.php::displayTabContentForItem()
      inc/user.class.php::showMyForm()
        inc/commondbtm.class.php::dropdown()
          inc/dropdown.class.php::show()
            inc/db.function.php::countElementsInTableForEntity()
              inc/db.function.php::getEntitiesRestrictRequest()

Dans la fonction getEntitiesRestrictRequest() on trouve une boucle qui traite ~130 itérations par seconde (avec la trace j'ai pu le mesurer assez précisémment)
Une itération étant constitué de la requête SQL complète (construction, envoie, execution sur xfreedb2, récupération), et d'opérations sur les tableaux (merge + unique).
C'est pas mal du tout, mais le problème c'est qu'il y a 2730 itérations... et donc il faut environ 20s pour que la boucle se termine. Le tableau contient un ensemble d'ids dont un extrait est donné ci après.
Ca te dira peut-être quelque chose

         foreach ($value as $val) {
            $ancestors = array_unique(array_merge(getAncestorsOf("glpi_entities", $val),
                                                  $ancestors));
         }


Le tableau $value:
  array (
    0 => '99992911',
    1 => '99992768',
    2 => '0',
    3 => '99993077',
    4 => '99993072',
    5 => '99993043',
    6 => '99992921',
    7 => '99993095',
    8 => '99993091',
    10 => '2',
    11 => '99993068',
    12 => '99992877',
    13 => '99992876',
    14 => '99992875',
    15 => '501',
    16 => '21',
    17 => '760',
    18 => '706',
    19 => '99991812',
    20 => '99991443',
    21 => '99992658',
    22 => '99992751',
    23 => '99991606',
    24 => '99991381',
    25 => '99991987',
    26 => '99992016',
    27 => '99992024',
    28 => '99991931',
    29 => '99991945',
    30 => '99991950',
    31 => '99991921',
    32 => '99991963',
    33 => '99991917',
    34 => '99991962',
    35 => '99991959',
    36 => '99991964',
    37 => '99992028',
    38 => '99991916',
    39 => '99991227',
    40 => '99992008',
    41 => '99992846',
    42 => '99992852',
    43 => '99992853',
    44 => '99992854',
    45 => '99992855',
    46 => '99992856',
    47 => '99992857',
    48 => '99992858',
    49 => '99992859',
    50 => '99992860',
    51 => '99992861',
    ...
Pour info, j'ai 2037 entités.
Je n'arrive pas à résoudre mon problème de lenteur.

GLPI  0.84.5 (/glpi => /srv/www/htdocs/glpi)

Server

Operating system: Linux xglpi2 3.1.10-1.19-xen #1 SMP Mon Feb 25 10:32:50 UTC 2013 (f0b13a3) x86_64
PHP 5.3.8 apache2handler (Core, PDO, Reflection, SPL, SQLite, SimpleXML, apache2handler, ctype, curl, date, dom, ereg, filter,
    gd, hash, iconv, json, ldap, libxml, mbstring, mhash, mysql, mysqli, mysqlnd, openssl, pcre, pdo_mysql, pdo_sqlite, session,
    sqlite3, standard, tokenizer, wddx, xml, xmlreader, xmlwriter)
Setup: max_execution_time="30" memory_limit="128M" post_max_size="8M" safe_mode="" session.save_handler="files"
    upload_max_filesize="8M"
Software: Apache/2.2.21 (Linux/SUSE) ()
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
DBMS:    Server Software: SUSE MySQL RPM
    Server Version: 5.0.67
    Parameters: david@xfreedb2.cg49.fr:3313/glpi_20140411
    Host info: xfreedb2.cg49.fr via TCP/IP
   
/srv/www/htdocs/glpi/config : OK
/srv/www/htdocs/glpi/files : OK
/srv/www/htdocs/glpi/files/_dumps : OK
/srv/www/htdocs/glpi/files/_sessions : OK
/srv/www/htdocs/glpi/files/_cron : OK
/srv/www/htdocs/glpi/files/_cache/ : OK
/srv/www/htdocs/glpi/files/_graphs : OK
/srv/www/htdocs/glpi/files/_lock : OK
/srv/www/htdocs/glpi/files/_plugins : OK
/srv/www/htdocs/glpi/files/_tmp : OK
/srv/www/htdocs/glpi/files/_rss : OK
/srv/www/htdocs/glpi/files/_uploads : OK
/srv/www/htdocs/glpi/files/_log : OK

Libraries

htmLawed version 1.1.16 in (/srv/www/htdocs/glpi/lib/htmlawed)
phpCas version 1.3.2 in (/srv/www/htdocs/glpi/lib/phpcas)
PHPMailer version 5.2.1 in (/srv/www/htdocs/glpi/lib/phpmailer)
eZ Graph componnent installed :  OK
Zend Framework version 2.0.5 in (/srv/www/htdocs/glpi/lib/Zend)
SimplePie version 1.3.1 in (/srv/www/htdocs/glpi/lib/simplepie)

Offline

#2 2014-04-25 12:44:47

yllen
GLPI-DEV
From: Sillery (51)
Registered: 2008-01-14
Posts: 15,278

Re: Lenteur GLPI

Vous utilisez un système de cache php style opcache ?


CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6  - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)

Offline

Board footer

Powered by FluxBB