性能優化:zabbix性能優化


Zabbix性能優化概述

造成zabbix性能下降的因素如表所示

因素

數據庫大小

巨大

適應內存大小

觸發器表達式的復雜程度

Max()min()avg()

Last()nodata()

數據收集方法

輪詢

Trapping

數據類型

文本,字符串

數值

前端用戶數量

 

 

 

 

 

 

 

 

 

主機數量也是影響性能的主要因素

 

主機數量(台)

性能(NVPS)

每個主機有60個items

每分鍾更新一次

10

10

100

100

1000

1000

每個主機有600個items

每分鍾更新一次

10

10

100

1000

1000

10000

 

 

 

 

 

 


zabbix性能低下的表現

1.    zabbix隊列有太多被延遲的item,可以通過administration-queue查看

2.    zabbix繪圖中經常出現斷圖,一些item沒有數據

3.    帶有nodata()函數的觸發器出現flase

4.    前端頁面無響應,或者響應慢

解決辦法如下:

1.    不要使用默認的模板,應該自己定制模板

2.    數據庫調優

3.    架構優化,如果使用分布式,各服務器功能獨立

4.    Items、trigger調優

5.    更換更好的硬件

Zabbix性能優化的原則

1、確保zabbix內部組件性能處於被監控狀態(調優的基礎!)

2、使用硬件性能足夠好的服務器

3、不同角色分開,使用各自獨立的服務器

4、使用分布式部署

5、調整MySQL性能

6、調整Zabbix自身配置

Zabbix性能優化的依據

對xxx進行的監控,選擇xxx的監控模板,如圖

看到如圖所示的內部監控情況

查看等待隊列

查看詳情

等待隊列越來越多,說明性能越來越差

NVPS計算方法

NVPS是PHP語言實現的,文件位於include/func.inc.php

SELECT round(SUM(1.0/i.delay),2) AS qps FROM items i,hosts h WHERE i.status='0' AND i.hostid=h.hostid AND h.status='0' AND i.delay<>0; 

配置文件的參數優化

調整zabbix參數(/etc/zabbix/zabbix_server.conf)

StartPollers=160

StartPollersUnreacheable=80

StartTrappers=20

StartPingers=100

StartDiscoverers=120

Cachesize=1024M

startDBSyncers=16

HistoryCacheSize-1024M

TrendCacheSize=1024M

HIstoryTextCacheSize-512M

重啟zabbix_server

Zabbix的架構優化

Zabbix的架構分為三種

Server/agent

Server/node/agent

Server/proxy/agent

Item工作模式及trigger優化

Zabbix中的item默認工作是被動模式,可以通過設置主動模式來提高server的性能

Tigger中正則表達式函數last()nodata()的速度是最快的,Min(),max().avg()是最慢的,盡量使用速度快的函數

Zabbix數據庫優化

Zabbix數據庫優化

1.    對數據庫軟件本身的優化,采用更高性能的數據庫版本

2.    對數據庫本身的參數進行調優

3.    對zabbix數據庫結構進行優化,進行分表操作,會最大程度提高zabbix的數據庫性能,在分表的時候,需要關閉housekeeper

4.    在zabbix_server.conf中的logshowqueries參數是關於慢查詢的設置,將其設置為1000,開啟這個參數對慢查詢繼續記錄,方便調優配置

5.  對zabbix的工作機制和各種process的作用要了解,對zabbix的數據庫表結構也要有比較好的理解。

6.    對數據庫優化(在32G內存的服務器中)

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
port = 3306
socket = /tmp/mysql.sock

server-id = 1

表示是本機的序號為1

max_allowed_packet = 32M
接受的數據包大小;

max_heap_table_size =128 8M
 定義了用戶可以創建的內存表(memory table)的大小。

read_rnd_buffer_size = 512K
 MySQL的隨機讀緩沖區大小。

sort_buffer_size = 16

 MySQL執行排序使用的緩沖大小。

join_buffer_size = 16

 聯合查詢操作所能使用的緩沖區大小

query_cache_size = 4096M
MySQL的查詢緩沖大小

query_cache_limit = 4M

指定單個查詢能夠使用的緩沖區大小,默認1M

innodb_open_files =2048

nnodb能打開的表的數據,如果庫里的表特別多的情況,請增加這個。這個值默認是300

innodb_buffer_pool_size = 10G

nnoDB使用一個緩沖池來保存索引和原始數據
innodb_thread_concurrency = 16
 默認設置為 0,表示不限制並發數,

 [mysqldump]
quick
max_allowed_packet = 16M #服務器發送和接受的最大包長度

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM