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 STATUSG


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。

原文地址:https://www.cnblogs.com/yjbjingcha/p/6951086.html