一.io瓶颈:
iostat -d -k 1 10
-d显示磁盘使用情况
-k表示单位为k,
1表示1秒刷新1次
10表示共显示10次
disk0 disk2
KB/t tps MB/s KB/t tps MB/s
84.52 4 0.30 1694.13 0 0.00
二.内存瓶颈:
free、vmstat检测是否是内存瓶颈
三.网络带宽瓶颈:
tcpdump
可能会存在web服务器,大量time_wait连接。
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
调整tcp接收及发送缓存区:
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
涉及外部系统调用,要配置域名对应ip,否则会发生dns查询,很耗时。
udp可替换允许丢失少量数据包的业务。比如日志相关的监控数据。
网卡缓存调优。
四.系统调优:
io多路复用,epoll。
cpu核处理程序负载均衡。
taskset
五.文件系统调优:
free命令查看,
free/used/buffers/cached
六.数据库调优:
引擎调优,使用支持行锁的innodb。
索引调优:
走索引,避免全表扫描。
尽量避免filesort。filesort原因在于where走的索引和order by 不是一个字段。
避免多表join。
字符串操作。能用int数值就尽量用,底层索引一般是b+树,如果是字符串比较则要比较所有字符。
时间不要存储成字符串。