cacti效能優化筆記 面向大規模集群的監控管理

2021-05-11 12:32:00 字數 3095 閱讀 9758

2009-10-9 21:52zysno1

目標:單台cacti伺服器,同時監控1000+ server,50000+ rrd 檔案. 保證圖表資料的連續和流暢,每一輪資料採集時間控制在3分鐘之內。

硬體環境:

intel(r) xeon(r) cpu           e5420  @ 2.50ghz  4 cores

4g memory

normal sata disk

優化步驟:

1,優化資料庫schema,建立合理的索引

cacti預設的cacti.sql建立的資料庫模型,竟然乙個index都沒有建。每次執行poller.php的時候,主要的時間,都花費在資料庫查 詢上。使用下面的sql語句,建立一系列索引,彌補預設的cacti.sql中缺乏index的缺點。可以有效的提高poller.php執行的效率,縮 短更新rrd檔案所需的時間

create index `data_template_data_id` on `data_input_data` (`data_template_data_id`);

create index `host_id_snmp_query_id_snmp_index` on data_local (`host_id`,`snmp_query_id`,`snmp_index`);

create index `local_data_id_data_source_name` on data_template_rrd (`local_data_id`,`data_source_name`);

create index `graph_template_id_local_graph_id` on graph_templates_item (`graph_template_id`,`local_graph_id`);

create index `local_graph_template_item_id` on graph_templates_item (`local_graph_template_item_id`);

create index `host_id_snmp_query_id_snmp_index` on host_snmp_cache (`host_id`,`snmp_query_id`,`snmp_index`);

create index `local_data_id_rrd_path` on poller_item (`local_data_id`,`rrd_path`);

create index `host_id_rrd_next_step` on poller_item (`host_id`,`rrd_next_step`);

create index host_id_snmp_query_id on host_snmp_cache (host_id,snmp_query_id);

create index host_id_snmp_port on poller_item (host_id,snmp_port);

create index data_source_path on data_template_data (data_source_path);

2,使用spine替代預設的cmd.php來採集資料

然後編輯cacti_install_dir/etc/spine.conf

修改db_host db_database db_user db_password幾個引數

最後,在cacti的setting->poller頁面裡,將poller type設定成spine,同時設定spine的maximum threads per process, number of php script servers, script and script server timeout value幾個引數。

通常會把maximum threads per process設定成cpu * 2。在這裡,我們設定成8.

3, 重構rra檔案的目錄結構,為每個device建立單獨的rra目錄

首先在crontab裡禁用poller.php,然後執行cacti_install_dir/cli目錄下的 structure_rra_paths.php,它會將所有的rrd檔案按照device重新分配目錄,並修改資料庫中的rrd路徑,成功執行後,再恢 復poller.php的crontab就可以了。

按照上面3個步驟,710臺伺服器,24000個rrd檔案,完成一次poller.php的時間,縮短到50 seconds。實現了最初的目的。

todo:

在執行poller.php的時候, 監控伺服器的load達到了3,通過vmstat檢視,顯示負載主要在i/o。在目前的情況,如果再出現瓶頸,可以考慮安裝boost外掛程式來進一步提供效能。

cacti主要通過snmp來採集資料,可以引入collected等客戶端,提供資料採集的可靠性。

原文:[url=http://zys.8800.org/index.php/archives/391]http://zys.8800.org/index.php/archives/391[/url]

前端效能優化筆記

1.減少http請求 2.如果需要在頁面中為背景,按鈕,導航欄提供大量背,css sprites可以縮短響應時間 3.合併指令碼和樣式表 4.對於地理上分散的使用者群來說,cdn 內容發布網路 能輕易的得到響應速度的提高 注 cdn用於發布靜態內容,如,指令碼,flash.動態html會對儲存有特殊...

CSS 效能優化筆記

在實習做乙個移動專案的時候,實現乙個動畫效果,在 iphone 和 chrome 上除錯沒有問題,在千元左右的 android 機上測試問題就很大了,卡頓非常明顯,百思不得其解,卒。這個悲傷的故事就是本文的引子,真真切切的體會到了 css 對使用者體驗的影響非常明顯,稍有不慎就是乙個大坑。下面,我們...

Mysql效能優化筆記

一,索引 1.innodb索引使用的是b 樹 2.盡量簡化where條件,比如不要出現 where id 3 5,這無法使用索引 3.索引很大時,可以冗餘一列來模擬雜湊索引 4.小的表不需要使用索引,很大的表需要用分塊技術,也不用索引 5.索引的選擇性 不重複的數量 總的數量 選擇性越高,效率越高,...