
运维
运维
软件求生
这个作者很懒,什么都没留下…
展开
-
Nginx/LVS/HAProxy:负载均衡软件的优缺点详解。
Nginx/LVS/HAProxy负载均衡软件的优缺点详解。转载 2020-10-12 10:00:34 · 342 阅读 · 1 评论 -
JDK的命令行工具——Java配置信息工具(jinfo)。
jinfo(Configuration Info for Java)的作用是实时的查看和调整虚拟机各项参数。使用JPS命令的-V参数可以查看虚拟机启动时显示指定的参数列表,但如果想知道未被显示指定的参数的系统默认值,除了去找资料外,就只能使用jinfo选项进行查询了(如果只限于JDK 1.6或以上版本的话,使用java-XX : +PrintFlagsFinal查看参数默认值也是一...转载 2018-04-03 11:40:28 · 273 阅读 · 0 评论 -
JDK的命令行工具——Java堆栈跟踪工具(jstack)。
jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿的时候通过jstack...转载 2018-04-03 13:57:01 · 1833 阅读 · 0 评论 -
JDK的命令行工具——虚拟机统计信息监视工具(jstat)。
jstat(JVM Statistics Monitoring Tool)是用于监视虚拟机各种运行状态信息的命令行工具。他可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行器定位虚拟机性能问题的首先工具。 jstat命令格式为:jstat [option vmid...转载 2018-04-03 11:21:04 · 208 阅读 · 0 评论 -
JDK的命令行工具——Java内存映像工具(jmap)。
jamp(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。如果不使用jmap命令,要想获取Java堆转储快照,还有一些比较“暴力”的手段:譬如-XX : + HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件,通过-XX : +HeapDumpOnCtrlBreak...转载 2018-04-03 13:22:02 · 1258 阅读 · 0 评论 -
JDK的命令行工具——虚拟机进程状况工具(JPS)。
JDK的很多小工具的名字都参考了UNIX命令的命名方式,jps(JVM Process Status Tool)是其中的典型。除了名字像UNIX的命令之外,他的功能也和ps命令类似:可以列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class,main()函数所在的类)名称以及这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier...转载 2018-04-03 10:44:31 · 240 阅读 · 0 评论 -
JDK的可视化工具——多合一故障处理工具(VisualVM)。
VisualVM(All-in-One Java Troubleshooting Tool)是到目前为止随JDK发布的功能最强大的运行监视和故障处理程序,并且可以遇见在未来一段时间内都是官方主力发展的虚拟机故障处理工具。官方在VisualVM的软件说明中写上了“All-in-One”的描述字样,预示着他除了运行监视、故障处理外,还提供了很多其他方面的功能。如性能分析(Profili...转载 2018-04-04 10:51:13 · 913 阅读 · 0 评论 -
JDK的可视化工具——Java监视与管理控制台(JConsole)。
JConsole(Java Monitoring and Management Console)是一种基于JMX的可视化监视、管理工具。他管理部分的功能是针对JMX MBean进行管理,由于MBean可以使用代码、中间件服务器的管理控制台或者所有符合JMX规范的软件进行访问,这里着重介绍JConsole监控部分的功能。启动JConsole 通过JDK/bin目...转载 2018-04-03 16:05:06 · 4330 阅读 · 0 评论 -
JDK的命令行工具——虚拟机堆转快照分析工具(jhat)。
Sun JDK提供jhat(JVM Heap Analysis Tool)命令与jmap搭配使用,来分析jmap生成的堆转储快照。jhat内置了一个微型的HTTP/HTML服务器,生成dump文件的分析结果后,可以在浏览器中查看。不过实事求是地说,在实际工作中,除非受伤真的没有别工具可用,否则一般都不会去直接使用jhat命令来分析dump文件,主要原因有二:一是一般不会在部署应用程...转载 2018-04-03 13:40:11 · 1170 阅读 · 0 评论 -
JVM提供的监控命令:btrace。
应用场景线上出问题,无法增加日志、无法线上调试,需要实现切面功能Java应用服务在生产环境中可能会出现各种各样的问题,有些问题在找到根本原因之前看似“不可思议”,有时并没有产生异常或者错误消息,这时我们无法根据已有的日志来定位问题,那么我们需要更多的信息如参数、返回值、程序逻辑判断、循环次数等来追踪问题。如果临时增加日志,则需要重新上线,成本较高,使用远程调试又会影响线上流量导致客户程序超...转载 2019-02-18 14:35:14 · 383 阅读 · 0 评论 -
JDK的命令行工具。
Java开发人员肯定都知道JDK的bin目录中有“java.exe”、“javac.exe”这两个命令行工具,但并非所有程序员都了解过JDk的bin目录之中其他命令行程序的作用。每逢JDK更新版本之时,bin目录下命令行工具的数量和功能总会不知不觉的增加和增强。bin目录的内容如下图所示。 在这些工具的其中一部分,主要包括用于监视虚拟机和故障处理的工具。...转载 2018-04-03 10:30:57 · 439 阅读 · 0 评论 -
JDK的命令行工具——JIT生成代码反汇编(HSDIS)。
HSDIS是一个Sun官方推荐的HotSpot虚拟机JIT编译代码的反汇编插件,他包含在HotSpot虚拟机的源码之中,但没有提供编译后的程序。在Project Kenai的网站也可以下载到单独的源码。他的作用是让HotSpot的-XX : +PrintAssembly指令调用他来把动态生成的本地代码还原为汇编代码输出,同时还生成了大量非常有价值的注释,这样我们就可以通过输出的代码...转载 2018-04-03 14:27:52 · 3472 阅读 · 0 评论 -
SLF4j使用。
如何在系统中使用SLF4j以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法;给系统里面导入slf4j的jar和logback的实现jar。import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HelloWorld { public static voi...转载 2019-04-19 14:26:40 · 918 阅读 · 0 评论 -
统计:QPS、PV和需要部署机器数量计算公式。
术语说明:QPS = req/sec = 请求数/秒【QPS计算PV和机器的方式】QPS统计方式 [一般使用 http_load 进行统计] QPS = 总请求数 / ( 进程总数 * 请求时间 ) QPS: 单个进程每秒请求服务器的成功次数单台服务器每天PV计算公式1:每天总PV = QPS * 3600 * 6 公式2:每天总PV = QPS * 3600 * 8服务器...转载 2019-05-14 13:32:07 · 668 阅读 · 0 评论 -
java命令:javap。
反汇编一个或多个类文件。用法javap [options] classfile ...选项命令行选项。类文件一个或多个由空格分隔的类,用于处理注释,例如DocFooter.class。你可以指定可在类路径中找到的类,文件名或URL等file:///home/user/myproject/src/DocFooter.class。描述该javap命令反汇编一个或多个...翻译 2019-05-29 16:08:25 · 592 阅读 · 0 评论 -
Git:设置忽略文件和目录。
Git:设置忽略文件和目录。转载 2019-08-26 09:11:01 · 2925 阅读 · 0 评论 -
JVM提供的监控命令:jad。
应用场景没有源码的Jar包出了问题、破解别人的代码、新上线的代码不符合预期jad反编译工具可以将字节码的二进制类反编译为Java源代码,常常用于遇到问题但是无法在源代码中定位的场景,通过反编译字节码,可以分析程序的实际执行流程,从而定位深层次的问题。如果不习惯使用命令行,则可以下载界面版本jd-gui,可以一次反编译一个Jar包,并且在类之间有简单的导航操作。如果开发者对字节码进行...转载 2019-02-18 14:03:47 · 195 阅读 · 0 评论 -
服务化治理脚本:show-mysql-qps。
使用场景数据库负载高、SQL超时此脚本可用于快速查看MySQL实例的负载情况,包括每秒查询数、每秒事务数、提交数、回滚数、连接线程数、执行线程数等。命令格式 show-mysql-qps 用户名 密码 使用示例show-mysql-qps root ****示例输出脚本源码...转载 2019-02-18 13:48:49 · 327 阅读 · 0 评论 -
服务化治理脚本:http-spy。
使用场景HTTP调用后发现未按照预期运行此脚本利用Linux命令nc检查HTTP请求参数、请求头和请求体等消息,常常用于调试基于HTTP的服务调用。如果一次HTTP调用没有达到预期的效果,则首先检查传递的参数时是否正确,包括请求参数、请求头、请求体等信息。命令格式http-spy使用示例http-spy示例输出脚本源码 ...转载 2019-02-18 13:43:10 · 392 阅读 · 0 评论 -
GitLab及TortoiseGit的基本配置及使用方法。
GitLab及TortoiseGit的基本配置及使用方法转载 2018-03-22 11:25:33 · 914 阅读 · 0 评论 -
Eclipse安装MAT 1.6((Memory Analyzer Tool 1.6)插件方法。
Eclipse安装MAT 1.6((Memory Analyzer Tool 1.6)插件方法。转载 2018-03-28 13:25:18 · 251 阅读 · 0 评论 -
linux配置java环境变量。
解压安装jdk 在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录, 执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车。之后会在当前目录下生成一个jdk1.6.0_14目录,你可以将它复制到 任何一个目录下。需要配置的环境变量 1. PATH环境变量。作转载 2018-04-23 15:39:53 · 620 阅读 · 0 评论 -
svn常用操作命令。
检出svn checkout http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名# 例子:svn co svn://localhost/测试工具 /home/testtools --username wzhnscsvn co ...转载 2018-06-06 11:10:02 · 175 阅读 · 0 评论 -
svn钩子(hooks)。
首先你需要搭建出自己的svn环境出来,并能成功导入导出,并且了解svn,这是看这篇文章的前提.... 出于公司开发部需要svn同步更新服务器代码,需要用到svn钩子(hooks)技术,以前从来没听过,没办法只能google了,google半天再一次认同了一个道理:天下文章一大抄啊,东拼西凑终于算是完成了(为啥说算是呢?svn太强大了我所做的只是一点点),不多说了,上例子:我们公司的部署...转载 2018-06-06 11:36:55 · 745 阅读 · 0 评论 -
大型门户网站上线解决方案(SVN&Java)。
对于大型集群环境,一般有数台机器,因此需要分批次的更新现在以JAVA架构环境代码上线来做理解:本地开发人员从SVN中取代码,当天上线的提交到trunk,否则,长期项目需要单开分支开发,最后再合并主线。办公内网开发测试时,由开发人员或者配置管理员通过部署平台jenkins实现统一部署,(在部署平台上控制开发机器从SVN取代码,编译,打包,发布到开发机,包名为xxx.war)开发人员通知测试人员对程序...转载 2018-06-06 16:17:05 · 456 阅读 · 0 评论 -
JVM提供的监控命令汇总。
序号 场景 命令 1 没有源码的Jar包出了问题、破解别人的代码、新上线的代码不符合预期 jad 2 线上出问题,无法增加日志、无法线上调试,需要实现切面功能 btrace 3 内存不足、OutOfMemoryError jmap 4 内存不足、OutOfMemoryError、GC频繁、服务超时、出现长尾响应现象 ...转载 2019-02-22 22:11:55 · 197 阅读 · 0 评论 -
服务化治理脚本:show-busiest-java-threads。
使用场景服务器负载高、服务超时、CPU利用率高此命令通过结合Linux操作系统的ps命令和JVM自带的jstack命令,来查找Java进程内CPU利用率最高的线程,一般适用于服务器负载较高的场景,并需要快速定位负载高的成因。命令格式./show-busiest-java-threads -p 进程号 -c 显示条数 ./show-busiest-java-threads -h使...转载 2019-02-18 11:05:05 · 594 阅读 · 0 评论 -
服务化治理脚本:find-in-jar。
使用场景java.lang.NoClassDefFoundError、java.lang.ClassNotFoundException、程序未按照预期运行此脚本用于在Jar包的包名和类名中查找某一关键字,并高亮显示匹配的包名、类名和路径,多用于定位java.lang.NoClassDefFoundError和java.lang.ClassNotFoundException的问题,以及类版本...转载 2019-02-18 11:15:19 · 236 阅读 · 0 评论 -
服务化治理脚本:grep-in-jar。
使用场景程序未按照预期运行、上线后未执行新逻辑、查找某些关键字此脚本在Jar包中及性能二进制内容查找,通常会解决线上出现的一些“不可思议”的问题,例如:某些功能上线后没有生效、某些日志没有打印等,通常是上线工具或者上线过程出现了问题,可以把线上的二进制包拉下来并查找特定的关键字来定位问题。命令格式grep-in-jar 关键字 路径使用示例grep-in-jar "vesta...转载 2019-02-18 11:41:59 · 464 阅读 · 0 评论 -
服务化治理脚本:jar-conflict-detect。
使用场景Jar包版本冲突、程序未按照预期运行此脚本用于识别冲突的Jar包,可以在一个根目录下找到好汉像同类的所有Jar包,并且根据相同类的多少来判断Jar包的相似度,常常用于某些功能上线缺不可用或者没有按照预期起到作用的情况,或者使用此脚本分析是否村子啊两个版本的类,而老版本的类被Java虚拟机加载。其实,JVM规范并没有规定类路径下相同类的加载顺序,实现JVM规范的虚拟机的实现机制也各不...转载 2019-02-18 12:01:50 · 441 阅读 · 0 评论 -
WebJars。
WebJars是一个很神奇的东西,可以让大家以jar包的形式来使用前端的各种框架、组件。什么是WebJars WebJars是将客户端(浏览器)资源(JavaScript,Css等)打成jar包文件,以对资源进行统一依赖管理。WebJars的jar包部署在Maven中央仓库上。为什么使用 我们在开发Java web项目的时候会使用像Maven,Gradl转载 2018-03-21 09:30:01 · 846 阅读 · 1 评论