笔记 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  ‘iaaaaa’   file

行末插入文本:sed   -e  ‘abbb’   file

对匹配行替换:  sed  -e  '/qqq/chello'     file


打印指定列:awk  '{print $2 }'

打印匹配行的某列: awk  ' /qqq/{ print $2 }'

打印length大于10行的某列: awk  'length($0)>10 { print $2 }'


Shell 特殊符号:
$$     Shell本身的PID(ProcessID) 
$!      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、典型案例:内存溢出、死锁、类加载冲突














原文地址:https://www.cnblogs.com/leeeee/p/7276408.html