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.索引的選擇性 不重複的數量 總的數量 選擇性越高,效率越高,...