笔记 4、系统稳定性
一、在线日志分析
1、常用命令
排序:sort , -r 反向
统计:wc , -l 行数, -w 词数,-c char个数, -b byte数
去重复:unique,-c 显示次数,-u 显示不重复行, -d 显示重复行
字符查找:grep
文件查找:find
表达诉求值:expr
URL访问:curl
2、文本处理工具
文本替换:sed 's/aaa/bbb' file
输出2到6行:sed -n ‘2,6p’ file
删除包括qq行:sed ‘/qq/d’ file
显示行号:sed ‘=’ file
行首插入文本:sed -e ‘i\aaaaa’ file
行末插入文本:sed -e ‘a\bbbb’ file
对匹配行替换: sed -e '/qqq/c\hello' file
打印指定列:awk '{print $2 }'
打印匹配行的某列: awk ' /qqq/{ print $2 }'
打印length大于10行的某列: awk 'length($0)>10 { print $2 }'
$! Shell最后运行的后台Process的PID
$? 最后运行的命令的结束代码(返回值)
$- 使用Set命令设定的Flag一览
$* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$# 添加到Shell的参数个数
$0 Shell本身的文件名
$1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
二、集群监控
load: uptime
cpu:top
磁盘: df
网络:sar
磁盘io:iostat
内存:free vmstat
心跳检测:ping、curl
三、流量控制
四、性能优化
1、寻找性能瓶颈
(1)、前端优化 YSlow
(2)、页面响应 FireBug
(3)、方法响应 Btrace
(4)、GC 日志分析
(5)、数据库查询
(6)、系统资源消耗
2、性能测试工具
(1)、Apache Bench
(2)、Apache JMeter
(3)、LoadRunner
(4)、反向代理引流
(5)、TCPCopy
3、性能优化措施
(1)、前端性能优化:页面HTTP请求数、CDN网络、压缩
(2)、Java程序优化:单例模式、Futrue模式、线程池、NIO、减少上下文切换、降低锁竞争
(3)、数据压缩
(4)、结果缓存
(5)、数据库查询性能优化:索引、反范式、查询缓存、搜索引擎、Key-Value数据库、GC优化、硬件提升
五、Java应用故障排查
1、常用工具:jps、jstat、jinfo、jstack、jmap、BTrace、JConsole、Memory Analyzer、VisualVM、
2、典型案例:内存溢出、死锁、类加载冲突