mysql 硬件层调优
关闭节能
关闭numa.c-stats,cie
mysqladmin var | grep -i numa
grep -i
- -i 或 --ignore-case : 忽略字符大小写的差别。
更好的IO
软件
修改脏页比例
sysctl -a | grep -i dir
vm.dirty_background_ratio = 10 =》5
vm.dirty_ratio =30
vm.dirty_background_ratio:这个参数指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如5%)就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入外存; vm.dirty_ratio:而这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如10%),系统不得不开始处理缓存脏页(因为此时脏页数量已经比较多,为了避免数据丢失需要将一定脏页刷入外存);在此过程中很多应用进程可能会因为系统转而处理文件IO而阻塞。当脏页达到30,就会刷脏页,其他进程挂起
考虑关闭swap
mysql 关键参数
sort/read/join buffer =4M
tmp/heap table=96M
binlog_format=row,sync_binlog=1
查看用户所需内存
mysql sys
show tables like '%user%';
select * from user_summary\G;
user: root
statements: 685
statement_latency: 1.52 s
statement_avg_latency: 2.22 ms
table_scans: 116
file_ios: 1159
file_io_latency: 357.51 ms
current_connections: 1
total_connections: 15
unique_hosts: 1
current_memory: 805.17 KiB
用户需要内存
total_memory_allocated: 99.26 MiB
pager cat -| less -i -n -S