Ad Widget

Collapse

Долгое открытие карт пользователем

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • SinTeZ
    Junior Member
    • Apr 2013
    • 4

    #1

    Долгое открытие карт пользователем

    Доброго дня, господа.
    Сталкивался ли кто с очень долгим открытием карты при большом кол-ве хостов?

    Например на карте находится 50 элементов.
    Однако судя по CMap.php в цикле
    Code:
    if ($hostsToCheck) {
    	$allowedHosts = API::Host()->get([
    	'output' => ['hostid'],
    	'hostids' => $hostsToCheck,
    	'preservekeys' => true
    	]);
    
    	foreach ($hostsToCheck as $elementid) {
    		if (!array_key_exists($elementid, $allowedHosts)) {
    			foreach ($selements as $selementid => $selement) {
    				
    				if ($selement['elementtype'] == SYSMAP_ELEMENT_TYPE_HOST
    						&& bccomp($selement['elementid'], $elementid) == 0) {
    					unset($result[$selement['sysmapid']], $selements[$selementid]);
    				}
    			}
    		}
    	}
    }
    перебираются все возможные хосты, даже не находящиеся на карте, что сказывается на открытии карты.

    Добавил в цикл вывод elementid
    Code:
    error_log($elementid);
    и получил что перебираются все хосты

    Code:
    [Mon Dec 12 12:56:18.905620 2016] [:error] [pid 6626] [client x.x.x.x:1641] 10756, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:18.931159 2016] [:error] [pid 6329] [client x.x.x.x:1590] 14319, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:18.934286 2016] [:error] [pid 6759] [client x.x.x.x:1620] 12825, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.017053 2016] [:error] [pid 6329] [client x.x.x.x:1590] 14320, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.020019 2016] [:error] [pid 6759] [client x.x.x.x:1620] 12763, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.025681 2016] [:error] [pid 6626] [client x.x.x.x:1641] 10786, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.131804 2016] [:error] [pid 6329] [client x.x.x.x:1590] 14321, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.135461 2016] [:error] [pid 6759] [client x.x.x.x:1620] 12443, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.144124 2016] [:error] [pid 6626] [client x.x.x.x:1641] 10777, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.217839 2016] [:error] [pid 6329] [client x.x.x.x:1590] 14322, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.249141 2016] [:error] [pid 6759] [client x.x.x.x:1620] 12680, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    Если закомментировать данный цикл - карта открывается практически мгновенно, однако это скорее всего неправильно.
  • yukra
    Senior Member
    • Apr 2013
    • 1359

    #2
    Originally posted by SinTeZ
    Доброго дня, господа.
    Сталкивался ли кто с очень долгим открытием карты при большом кол-ве хостов?

    Например на карте находится 50 элементов.
    Однако судя по CMap.php в цикле
    Code:
    if ($hostsToCheck) {
    	$allowedHosts = API::Host()->get([
    	'output' => ['hostid'],
    	'hostids' => $hostsToCheck,
    	'preservekeys' => true
    	]);
    
    	foreach ($hostsToCheck as $elementid) {
    		if (!array_key_exists($elementid, $allowedHosts)) {
    			foreach ($selements as $selementid => $selement) {
    				
    				if ($selement['elementtype'] == SYSMAP_ELEMENT_TYPE_HOST
    						&& bccomp($selement['elementid'], $elementid) == 0) {
    					unset($result[$selement['sysmapid']], $selements[$selementid]);
    				}
    			}
    		}
    	}
    }
    перебираются все возможные хосты, даже не находящиеся на карте, что сказывается на открытии карты.

    Добавил в цикл вывод elementid
    Code:
    error_log($elementid);
    и получил что перебираются все хосты

    Code:
    [Mon Dec 12 12:56:18.905620 2016] [:error] [pid 6626] [client x.x.x.x:1641] 10756, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:18.931159 2016] [:error] [pid 6329] [client x.x.x.x:1590] 14319, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:18.934286 2016] [:error] [pid 6759] [client x.x.x.x:1620] 12825, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.017053 2016] [:error] [pid 6329] [client x.x.x.x:1590] 14320, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.020019 2016] [:error] [pid 6759] [client x.x.x.x:1620] 12763, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.025681 2016] [:error] [pid 6626] [client x.x.x.x:1641] 10786, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.131804 2016] [:error] [pid 6329] [client x.x.x.x:1590] 14321, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.135461 2016] [:error] [pid 6759] [client x.x.x.x:1620] 12443, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.144124 2016] [:error] [pid 6626] [client x.x.x.x:1641] 10777, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.217839 2016] [:error] [pid 6329] [client x.x.x.x:1590] 14322, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    [Mon Dec 12 12:56:19.249141 2016] [:error] [pid 6759] [client x.x.x.x:1620] 12680, referer: http://x.x.x.x/zabbix/zabbix.php?action=map.view&sysmapid=26
    Если закомментировать данный цикл - карта открывается практически мгновенно, однако это скорее всего неправильно.
    Это вам скорей всего в багтрекер: https://support.zabbix.com/

    Comment

    Working...