# lemon-guide 收纳了 `操作系统`、`JAVA`、`算法`、`数据库`、`中间件`、`解决方案`、`架构`、`DevOps` 和 `大数据` 等技术栈总结!其内容有来源笔者个人总结的内容,也有来源于互联网各种经典场景或案例的总结,目的在于把常用的技术内容进行归纳整理记录。 # [1 OS](OS.md) 提供OS # [2 JAVA](JAVA.md) 提供JAVA # [3 Algorithm](Algorithm.md) 提供Algorithm # [4 Database](Database.md) 提供Database # [5 Middleware](Middleware.md) 提供Middleware # [6 Solution](Solution.md) 提供Solution # [7 Architecture](Architecture.md) 提供Architecture # [8 DevOps](DevOps.md) 本章节主要总结并收纳了常用的JDK工具、Linux命令、Shell语法、Git命令、测试工具、Docker等。 ## 8.1 JDK Tools ![Visual-GC](images/README/Visual-GC.png) - **jps**:用于查看JAVA进程编号 - **jstat**:用于打印GC回收统计信息,便于分析是否出现FGC等情况 - **jstack**:用于dump出指定进程中的线程堆栈快照信息,便于排查应用是否有锁、死锁或排查CPU占比高的线程代码 - **jmap**:用于dump出指定进程中当前内存的快照信息,便于分析内存的内容结构,从而定位内存泄漏等问题 - **jhat**:用于与jmap搭配使用,用来分析jmap生成的dump - **jconsole**:Java GUI监视工具,可以以图表化的形式显示各种数据,并可通过远程连接监视远程的服务器VM - **jvisualvm**:一个基于图形化界面的,可以查看本地及远程的JAVA GUI监控工具,可以查看CPU、堆、线程、GC等 - **jmc**:JDK自带图形界面监控工具。JMC打开性能日志后可查看**一般信息、内存、代码、线程、I/O、系统、事件** 功能 - **EclipseMAT**:基于Eclipse内存分析工具,它可以帮助我们查找内存泄漏和减少内存消耗 ## 8.2 Linux Command ![htop](images/README/htop.png) - **基本命令**:`vi/vim`、`scp`、`tar`、`su`、`df`、`tail`、`grep`、`awk`、`find`、`netstat`、`echo`、`telnet`、`rpm`、`yum`等 - **监控命令** - **Memory**:`free`、`vmstat` - **CPU**:`top`、`htop`、`sar` - **IO**:`iostat`、`pidsta`、`iotop` - **Network**:`netstat`、`iftop`、`tcpdump` - **Others**:`dstat`、`saidar`、`Glances` - **瓶颈排查**:定位线上最耗CPU的线程、定位丢包错包情况、查看网络错误、包的重传率等 ## 8.3 Shell 收纳了Shell脚本的变量、数组、算术运算、字符串、条件判断、流程控制等基本语法,学完后就可自己写Shell脚本。 ## 8.4 Git 收纳了Git相关的常用命令,如:`git clone`、`git add`、`git rm`、`git commit`、`git branch`、`git tag`、`git push`、`git pull`、`git log`、`git remote`、`git fetch`、`git reset`等。 ## 8.5 Test Tools ![Junit-Summary-Report](images/README/Junit-Summary-Report.png) - **AB**:ApacheBench (ab)是 Apache 网站服务器软件附带的工具,专门用来做HTTP接口的性能测试 - **Jmeter**:Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试 ## 8.6 Docker # [9 BigData](BigData.md) 提供BigData # [10 Others](Others.md) 提供Others