检查项 | 命令行 |
---|---|
机器型号 | dmidecode | grep "Product Name" |
CPU | cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c |
内存 | free-m |
磁盘 | df -h |
网卡 | ifconfig -a |
操作系统 | uname -a |
检查项 | 命令行 | 参考指标 |
---|---|---|
CPU占用率 | top | CPU每个线程占用率小于80% |
CPU负载 | uptime | CPU负载应小于10 |
内存占用率 | free -m | 内存使用率小于80% |
内存swap使用率 | free -m | swap使用率小于10% |
磁盘使用率 | df -ah | 磁盘使用率小于80% |
磁盘负载 | iostat -xkd 1 | util 应在10%以内 |
系统开放端口 | nestat -an | grep LISTEN | 只显示出提供对应服务的端口, 无关的端口应一律关闭 |
网卡流量 | iftop | 网卡流量小于带宽的50% |
进程检查 | ps aux | more | 关闭占用资源的无用进程 |
检查项 | 命令行 | 参考指标 |
---|---|---|
进程检查 | ps -ef | grep mysqld | 检查port以及datadir |
数据库版本 | select version() | |
超大库检查 | du -sh 每个数据库目录 | |
超大表检查 | show table status | 检查输出后的Rows、Data_length指标,Rows应小于1千万条 |
错误日志 | show variables like '%log_error%' | 查看文件中有ERROR的日志 |
慢查询日志 | show variables like '%slow%' | 检查慢日志是否开启,若开启,检查慢日志文件中的语句 |
重要参数检查 | backlog max_allowed_packet interactive_timeout wait_timeout skip_name_resolve max_connections log_bin expire_logs_days open_file_limit table_open_cache thread_cache_size sort_buffer_size join_buffer_size innodb_buffer_pool_size innodb_file_per_table innodb_open_files innodb_thread_concurrency innodb_flush_log_at_commit innodb_log_buffer_size innodb_log_file_size innodb_log_files_in_group general_log log_error slow_query_log long_query_time | 根据机器配置以及应用需求检查每个参数是否配置合理 |
QPS检查 | 间隔执行show status like 'queries' | 通过两次的间隔时间做差值,计算QPS |
读写比检查 | show status like 'com_%' | 读请求是com_select; 写请求是com_insert; com_update;com_delete通过统计读写的请求数,算出读写比例。 |
当前连接数检查 | show status like '%Threads_connected%' | 此数据显示当前的连接数,应远小于max_connections。 |
最大连接数检查 | show status like '%max_used_connections%'; show variables like '%max_connections%'; | 若max_used_connections逼近max_connections,则需要调大max_connections |
异常连接检查 | show variables like '%Aborted%' | 检查Aborted_clients以及 Aborted_connects值是否正常 |
并发线程检查 | show global status like '%threads_running%'; | 此值应小于10,如果过大,说明并发数太多,存在慢语句。 |
线程缓存池检查 | show status like '%threads_created%'; show status like 'connections'; | threads_created/connections为缓存未命中率,若此值过高,则需要调大hread_cache_size |
运行线程状态查询 | show full processlist; | 查看墚前并发线程是否状态正常 |
InnoDB Buffer Pool检查 | show status like 'Innodb_buffer_pool_read_requests'; show status like 'Innodb_buffer_pool_reads'; | Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests为缓存未命中率,若此值过高,则需要调大innodb_buffer_pool_size。 |
锁等待检查 | show full processlist; | 检查state列是否存在wait for xxx lock的状态,如果有则存在锁等待 |
InnoDB死锁检查 | show engine innodb status; | 查看LATEST DETECTED DEADLOCK输出段,如果存在,需要摘取相应的语句。 |
InnoDB长事务检查 | show engine innodb status; | 检查TRANSACTIONS输出段,看是否存在ACTIVE时间过长的事务,如果存在,则需要关注。 |
表缓存检查 | show global status like '%opened_tables%'; show variables like '%table_open_cache%'; | 若opened_tables过大,则需要调大table_open_cache的值。 |
查询缓存检查 | show variables like '%query_cache%' | 一般情况下,需要禁用query cache。 |
临时表检查 | show global status like '%tmp%'; | 如果Created_tmp_tables,Created_tmp_disk_tables或者Created_tmp_files较高,则需要排查慢查询(b子查询、排序、Group By等) |
binlog是否开启 | show variables like 'log-bin' | |
复制检查 | show slave status; | 查看线程是否正常,延迟是否存在 |
备份检查 | 检查备分脚本是否正确,检查备份文件是否可用 |
备案号:浙ICP备12035708号-4