1. 程式人生 > >Linux監控(OS,MySQL,Tomcat,Apache)

Linux監控(OS,MySQL,Tomcat,Apache)

      關於逐步脫離開發崗位的意見,老大已經批准了,接下來我的主要工作就是”運維+資料庫管理“。感謝傑民兄和小馬哥能接受我的騷擾,接下來還會去騷擾他們,同時也會去騷擾董大爺,小剛總,心靈哥,豬肉哥,謝謝你們。同時也要感謝吳老大,葉老大,落總,七總,橙子哥他們。

     因為還沒有學會玩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延遲等待。

SHOW GLOBAL STATUS;
SHOW FULL PROCESSLIST;
SHOW ENGINE INNODB STATUS\G

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。