關於逐步脫離開發崗位的意見,老大已經批准了,接下來我的主要工作就是”運維+數據庫管理“。感謝傑民兄和小馬哥能接受我的騷擾,接下來還會去騷擾他們,同時也會去騷擾董大爺,小剛總,心靈哥,豬肉哥,謝謝你們。同時也要感謝吳老大,葉老大,落總,七總,橙子哥他們。
因為還沒有學會玩zabbix,所以先著手自己寫腳本試試看。寫好的腳本到時候回分享出來,歡迎大家批評指點。
=======================================================================================
1.重點進程監控:tomcat,apache,mysql
2.存儲空間監控:掛載點 75%告警(如果一直都是75%,則每小時告警一次)
3.uptime查看load_avg,只要這三個值出現大於(cpu core/2)就開始收集系統資源信息(cpu,mem,io,net)
top10的進程(cpu,mem),每10秒收集一次,同時開始告警,每10分鐘告警一次(如果一直都大於(cpu core/2))
4.重點域名ping測試(??)
5.網絡流量如何監控(待定)
6.MySQL性能參數收集
打印當前MySQL的重點參數:
innodb_buffer_pool_size:0.5--0.8
innodb_max_dirty_pages_pct:<50%
innodb_log_buffer_size:32M
innodb_data_file_path:>1G
innodb_log_file_size:
innodb_flush_log_at_trx_commit:1
sync_binlog:1
query_cache_size:0
query_cache_type:0
innodb_data_file_path=ibdata1:100M:autoextend #1024M init
innodb_file_per_table:1 #是否啟用獨立表空間
innodb_log_buffer_size:8M # # 用來緩沖日志數據的緩沖區的大小.當此值快滿時, InnoDB將必須刷新數據到磁盤上. 由於基本上每秒都會刷新一次,所以沒有必要將此值設置的太大(甚至對於長事務而言)
innodb_log_file_size:100M # redo log大小,不能太大,否則恢復很慢,不能太小,否則頻繁checkpoint,導致性能抖動
innodb_log_files_in_group:3 # 指定日志組中redo log日志的數量
log_bin #開啟binlog
expire_logs_days:45
binlog_format:MIXED
innodb_flush_method:O_DIRECT
這個參數控制著innodb數據文件及redo log的打開、刷寫模式,對於這個參數,文檔上是這樣描述的:
有三個值:fdatasync(默認),O_DSYNC,O_DIRECT
fdatasync:默認值,調用fsync()去刷數據文件與redo log的buffer
O_DSYNC:innodb會使用O_SYNC方式打開和刷寫redo log,使用fsync()刷寫數據文件
O_DIRECT:innodb使用O_DIRECT打開數據文件,使用fsync()刷寫數據文件跟redo log
open_files_limit:8192
table_definition_cache:400
table_open_cache:400
lower_case_table_names:
sql_mode
character_set_server
max_connections
max_user_connections
thread_cache_size
read_buffer_size
sort_buffer_size
tmp_table_size
join_buffer_size
read_rnd_buffer_size
max_heap_table_size
slow_query_log_file
slow_query_log:1
log_queries_not_using_indexes:1
long_query_time:0.02
min_examined_row_limit :100
Mysql 內存分配規則是:用多少給多少,最高到配置的值,不是立即分配
全局緩存包括:
global buffer(全局內存分配總和) =
innodb_buffer_pool_size -- InnoDB高速緩沖,行數據、索引緩沖,以及事務鎖、自適應哈希等
+innodb_additional_mem_pool_size -- InnoDB數據字典額外內存,緩存所有表數據字典
+innodb_log_buffer_size -- InnoDB REDO日志緩沖,提高REDO日志寫入效率
+key_buffer_size -- MyISAM表索引高速緩沖,提高MyISAM表索引讀寫效率
+query_cache_size -- 查詢高速緩存,緩存查詢結果,提高反復查詢返回效率
+thread_cache_size --Thread_Cache 中存放的最大連接線程數
+table_cahce -- 表空間文件描述符緩存,提高數據表打開效率
+table_definition_cache -- 表定義文件描述符緩存,提高數據表打開效率
會話緩存包括:
total_thread_buffers= max_connections * (
read_buffer_size -- 順序讀緩沖,提高順序讀效率
+read_rnd_buffer_size -- 隨機讀緩沖,提高隨機讀效率
+sort_buffer_size -- 排序緩沖,提高排序效率
+join_buffer_size -- 表連接緩沖,提高表連接效率
+binlog_cache_size -- 二進制日志緩沖,提高二進制日志寫入效率
+tmp_table_size -- 內存臨時表,提高臨時表存儲效率
+thread_stack -- 線程堆棧,暫時寄存SQL語句/存儲過程
+thread_cache_size -- 線程緩存,降低多次反復打開線程開銷,模擬連接池
mysql狀態:
qps,tps,InnoDB Buffer命中率,慢日志,Table Cache狀態量,鎖定狀態,Tmp Table 狀況(臨時表狀況), Binlog Cache 使用狀況,Innodb_log_waits 量 ,slave延遲等待。
7.虛擬機壓力測試報告:(sysbench,tpcc_mysql)
tpcc_mysql壓力測試TPS:os內存調整到16G, innodb_buffer_pool_size分別設置為2,4,6,8,10,12G時倉庫數是5,10,15,20,50,60,80,100的TPS。