Zabbix4.0性能調優 ------ 第11章

1. 數據庫調優

① Zabbix是寫多讀少的業務,所以要提高Zabbix寫入的性能。MyISAM引擎時不可以使用的,至少要使用InnoDB引擎(mysql 5.5),或者使用TokuDB引擎(mysql 5.7),當然也可以把數據庫的硬盤升級爲SSD硬盤。

② 去掉沒有用的監控項,增加監控項的取值間隔,減少歷史數據保存週期

③ 針對Zabbix歷史數據和趨勢圖的表進行週期性分表

④ 把被動模式修改爲主動模式,增加zabbix-proxy將監控項的採集數據集中寫入,而不是每個Zabbix Agent都向最終的Zabbix Server發數據

2. 進程調優

① 針對Zabbix-Server進程調優,進程忙碌的時候就增加進程數量

將掃描IP網段的頻率時值爲10s,這樣會增加自動發現進程的壓力:
在這裏插入圖片描述
在這裏插入圖片描述
Zabbix的進程監控都在 圖形 裏面,可以選擇查看數據採集進程的情況,如自動發現進程。這裏不難發現,自動發現進程的已經到了100%:
在這裏插入圖片描述
下面通過調優來降低自動發現忙碌程度:

# 這裏把自動發現進程數設置爲6個(0~250)
[root@Zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf 
StartDiscoverers=6

# 重啓Zabbix Server
[root@Zabbix-server ~]# systemctl start zabbix-server.service

不建議上來就把值設置爲最大,因爲 每增加一個進程需要消耗一定內存空間的。 然後再看自動發現的忙碌程度就降低了非常多:
在這裏插入圖片描述
調優的原則是:哪個進程比較忙就增加進程數量,不建議加到幾十倍,最好要一點點去調。要保證曲線平穩,而不是高低起伏大。

② 針對Zabbix-Server緩存調優,剩餘內存少的時候增加緩存值

緩存的作用是用來存儲監控的主機,這些目標主機數據是從數據庫查出來的然後放到內存中的。 當然,取值的監控項觸發器指標 也都是存在Zabbix Server的緩存中。如果緩存不夠用了,Zabbix Server就會出問題。Zabbix Server默認的緩存是8M。爲了測試緩存調優效果,這裏先把緩存調爲最低,

# 修改緩存爲128K(128K-8G)
[root@Zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf 
CacheSize=128K

# 重啓Zabbix Server
[root@Zabbix-server ~]# systemctl restart zabbix-server.service

這個時候發現,Zabbix Server掛掉:
在這裏插入圖片描述

# 查看Zabbix Server日誌
[root@Zabbix-server ~]# tailf /var/log/zabbix/zabbix_server.log
 67257:20200602:102244.619 __mem_malloc: skipped 1 asked 1816 skip_min 1104 skip_max 1104
 67257:20200602:102244.619 [file:dbconfig.c,line:94] __zbx_mem_realloc(): out of memory (requested 1816 bytes)
 67257:20200602:102244.619 [file:dbconfig.c,line:94] __zbx_mem_realloc(): please increase CacheSize configuration parameter

意思也就是內存不足( out of memory ),讓我們增加CacheSize配置參數。如果以後有這樣的報警,需要把緩存調整大一些。除了 內部進程、採集進程 還有緩存使用率:
在這裏插入圖片描述
大於75%的時候會報警,如果緩存不夠就需要增加緩存!

Github:https://github.com/ThanlonSmith/Zabbix-Tutorial

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章