性能调优实战
MC-闰土
程序员到最后拼的是文化!
展开
-
垃圾收集器与内存分配策略
垃圾收集器与内存分配策略原创 2017-08-15 07:55:43 · 283695 阅读 · 1 评论 -
nginx监控与性能调优
监控nginx有自带的监控模块,编译nginx的时候,加上参数 --with-http_stub_status_module#配置指令 ./configure --prefix=/usr/local --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module...原创 2018-11-01 16:49:24 · 287142 阅读 · 0 评论 -
使用jstack(jstack是用于调试线程间的关系,解决阻塞,锁等问题)定位由死循环引起的cpu负载飙高或者死锁
在linux下:linux的top命令可以查看进程的pid,我们找到java程序的pid,然后执行 top -Hp pid 就可以查看到这个进程下线程的运行情况。 这样粗略可以看到哪些线程比较繁忙,这时候就用到jdk自带的小工具jstack(官方文档或者自行 百度)。我们执行jstack pid > abc.txt //意思是执行结果输出到这个文本。在这个文本中有很...原创 2018-10-21 14:13:54 · 232510 阅读 · 0 评论 -
使用jmap命令(用于输出对象,适用于解决对象内存溢出等问题)导出内存映象文件与堆内存异常分析 MAT
内存溢出自动导出参数://发生溢出时dump出来 -XX:+HeapDumpOnOutOfMemoryError//dump的路径 ./为项目启动根路径 -XX:HeapDumpPath=./内存溢出手动导出参数:jmap命令使用jdk安装后会自带一些小工具,jmap命令(Java Memory Map)是其中之一。主要用于打印指定Java进程(或核心文件、远程调试服务器)的共...原创 2018-10-21 13:34:27 · 284889 阅读 · 0 评论 -
使用jstat(监控整体的class情况、gc情况)监控JVM
jstat是用于监视虚拟机运行时状态信息的命令,它可以显示出虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。命令格式jstat [options] VMID [interval] [count]参数[options] : 操作参数,一般使用 -gcutil 查看gc情况VMID : 本地虚拟机进程ID,即当前运行的java进程号(PID)[interval] : ...原创 2018-10-21 11:31:23 · 285472 阅读 · 0 评论 -
Tomcat性能调优以及远程管理(Tomcat manager与psi-probe监控)
tomcat优化的我用到的几个点:1.内存优化2.线程优化 docs/config/http.html maxConnections acceptCount(配置的太大是没有意义的) maxThreads minSpareThreads 最小空闲的工作线程(不能设置的太小)4.配置优化 docs/config/host.html autoDepla...原创 2018-10-28 13:11:02 · 286786 阅读 · 0 评论 -
Tomcat远程DEBUG
在tomcat上做2个配置:1. tomcat bin下的start.sh,jpda是一种协议 exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@" 在start 前面增加jpda 2.bin下的catlina.sh, 将下面的localhost修改为54321,代码段如下:if [ -z "$JPDA_ADDRESS" ]; t...原创 2018-10-28 12:52:20 · 285195 阅读 · 1 评论 -
jdk自带的JVisualVM的可视化监控
如果你前面看了我几篇关于jvm性能优化的文章,命令行操作是不是不直观,那么我们来使用这个JVisualVM吧,在jdk的bin文件夹里,这个官方文档都有中文版,插件啥的自己看着安装。https://visualvm.github.io/pluginscenters.html他主要有如下的功能: 1.监控本地Tomcat 2. 监控远程Tomcat 3....原创 2018-10-22 20:38:09 · 285910 阅读 · 0 评论 -
分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移到Cassandra,因为Cassandra没...转载 2018-10-22 09:25:28 · 233470 阅读 · 0 评论 -
查看JVM运行时参数
常用的一些如下:-XX:+PrintFlagslnitial(可设置参数的初始值) 显示的参数如果是:=则表示是修改过的,=则表示是默认值-XX:PrintFlagsFinal-XX:UnlockExperimentalVMOptions解锁实验参数(先决条件)-XX:+UnlockDiagnosticVMOptions解锁诊断参数-XX:+PrintCommandLineFlag...原创 2018-10-19 16:44:11 · 234161 阅读 · 0 评论 -
JVM的参数类型
标准参数-help-server, -client-version, -showversion-cp, -classpathX参数 非标准化参数(在各个JDK版本中可能会变,但是变动比较小) -Xint : 解释执行 -Xcomp : 编译执行 第一次使用就编译成本地代码 -Xmixed :混合模式,JVM自己来决定是否编译成本地代码 XX...转载 2018-10-19 16:28:36 · 283976 阅读 · 0 评论 -
使用VisualVM监控远程服务器JVM
VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用、JVM堆内存消耗、线程、类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很有帮助。在windows中安装JDK后,VisualVM位于%JAVA_HOME%/bin/下,直接执行jvisualvm.exe即可,一个主要运行界面如图:VisualVM会自动检测本机运行中的JV...转载 2018-03-19 22:36:05 · 233591 阅读 · 2 评论 -
针对Mysql的CentOS系统参数主要调优
内核相关参数(/etc/sysctl.conf)# 以下参数可以直接放到sysctl.conf文件的末尾net.core.somaxconn = 65535net.core.netdev_max_backlog = 65535net.ipv4.tcp_max_syn_backlog = 65535# 加快TCP连接的回收:net.ipv4.tcp_fin_timeout = 1...转载 2019-05-28 14:59:35 · 274696 阅读 · 0 评论