jvm/tcp/http/https/ip
王树民
大JAVA
展开
-
解决:Invalid character found in method name. HTTP method names must be tokens
阿里云上弄了一个tomcat,经常半夜发送崩溃,查看日志发现这个东西,查阅资料发现是Tomcat的header缓冲区大小不够,只需要在server.xml中增加maxHttpHeaderSize字段即可:<Connector URIEncoding="UTF-8" port="8080" protocol="org.apache.coyote.http11.Http1...转载 2019-06-24 17:41:53 · 4354 阅读 · 0 评论 -
tcp
原创 2018-07-06 08:35:11 · 143 阅读 · 0 评论 -
调试查看tcp全连接和半连接
[root@templatetest08 emqttd]# date; netstat -s | egrep "listen|LISTEN" Thu Jul 5 14:37:27 CST 2018 531705 times the listen queue of a socket overflowed 531714 SYNs to LISTEN sockets dropped[roo...原创 2018-07-06 08:35:17 · 1642 阅读 · 0 评论 -
socket调试
2014年10月12日 14:31:48阅读数:1734现象1:客户端为FIN_WAIT1,服务端为ESTABLISHED/proc/sys/net/ipv4/tcp_abort_on_overflow值设置成1,那么connect就会被rerest。Linux内核协议栈为一个tcp连接管理使用两个队列,一个是半链接队列(用来保存处于SYN_SENT和SYN_RECV状态的请求),一个是accpe...转载 2018-07-05 14:31:10 · 2611 阅读 · 0 评论 -
lager_error_logger_h dropped ~p messages in the last second that exceeded the limit of ~p messages/s
Erlang tool -- lager overload protectionlog 这个事, 说大不大说小又不小. 大点的, 可以用scribe flume 这样的系统去做, 小点的, 也就打印一个调试信息而已. 在Erlang 中, log 这事情确实比较伤, error_logger 是个单点, io:format 容易导致节点崩溃. 在开源社区, lager 算是使用比较广泛的一个, 然...转载 2018-07-05 14:21:18 · 3247 阅读 · 0 评论 -
Tomcat并发数优化,修改service.xml性能调优 增加最大并发连接数
可以在控制台的启动信息里看见,默认状态下没有被打开nio配置,启动时的信息,如下: 2010-2-1 12:59:40 org.apache.coyote.http11.Http11Protocol init 信息: Initializing Coyote HTTP/1.1 on http-8080 2010-2-1 12:59:40 org.apache.catalina.startup.Cat...转载 2018-07-05 10:19:28 · 1576 阅读 · 0 评论 -
正常TCP建连接三次握手过程
阿里中间件团队博客致力于成为中国第一,世界一流的中间件技术团队 首页 归档 分类 标签 招聘 关于 搜索关于TCP 半连接队列和全连接队列发表于 2017-05-25 | 作者 蛰剑 | 分类于 网络 | 最近碰到一个client端连接异常问题,然后定位分析并查阅各种资料文章,对TCP连接队列有个深入的理解查资料过程中发现没有文章把这两个队列以及怎么观察...转载 2018-07-05 10:10:17 · 594 阅读 · 0 评论 -
带你了解 NIO 系列之 TCP 探秘
IT技术之家 2018-06-27 21:45:00很开心,上半年发布的spring boot 2中,默认的web 容器是netty ,这说明“反应式” 容器已经是大势所趋,无论是go 语言的协从线程,还是java 基于reactor 线程模型,都是基于事件编程实现高并发的实例。这周开始我会讲关于NiO的一切,底层原理是什么,应用架构有哪些,如何利用其优势构建高性能服务器,欢迎关注。在介绍NIO之...转载 2018-07-05 08:59:17 · 482 阅读 · 0 评论 -
TCP 三次握手原理,你真的理解吗?
原创: 蛰剑 阿里技术 今天阿里妹导读:最近,阿里中间件小哥哥蛰剑碰到一个问题——client端连接服务器总是抛异常。在反复定位分析、并查阅各种资料文章搞懂后,他发现没有文章把这两个队列以及怎么观察他们的指标说清楚。因此,蛰剑写下这篇文章,希望借此能把这个问题说清楚。欢迎大家一起交流探讨。问题描述场景:JAVA的client和server,使用socket通信。server使用NIO。1.间歇性得...转载 2018-07-05 08:48:01 · 354 阅读 · 0 评论 -
JVM8内存、堆模型、垃圾回收器总结
Java全栈进行时 2017-10-24 15:18:29JVM8内存包括:堆、栈、元数据区、本地方法栈、程序记数寄存器需要注意的是,JDK8中已经用Metaspace(元数据区)完全替代了永久代(即方法区)而且元数据区内存不在JVM中,而是使用的本地内存,默认情况下受操作系统内存限制。调整元数据区内存大小的参数 -XX:MetaspaceSize -XX:MaxMetaspaceSizeJVM堆...原创 2018-07-05 08:45:56 · 4517 阅读 · 0 评论 -
JVM:查看java内存情况命令
JVM:查看java内存情况命令 转 BazingaYou 发布于 2013/11/15 14:48 字数 1060 阅读 22114 收藏 6 点赞 2 评论 0jvm参数华为云开发者4大福利:2核4G云主机、DevCloud、应用服务、培训课程 免费领取 >>> jinfo:可以输出并修改运行时的java 进程的opts。 jps:与unix上的ps类似,用来显示本地...转载 2018-07-06 08:35:04 · 1122 阅读 · 0 评论 -
jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
博客分类: java I/O系统java基础 公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子。昨天晚上总结了一下jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令。供大家参考 1.Jstack 1.1 jstack能得到运行java程序的java stack和native stack的信息。可以轻松得知当前线程的运行情况。如下图所示 注:这个和t...转载 2018-07-06 08:34:57 · 5847 阅读 · 0 评论 -
JVM性能调优1:JVM性能调优理论及实践(收集整理)
JVM性能调优1:JVM性能调优理论及实践(收集整理)2016年05月31日 13:49:53阅读数:2003本系列包括:JVM性能调优1:JVM性能调优理论及实践(收集整理)JVM性能调优2:JVM性能调优参数整理JVM性能调优3:JVM_堆溢出分析过程和命令JVm性能调优4:GC日志分析JVM性能调优5:Heap堆分析方法注:本文部分内容收集整理了网上的资料。1. 内存结构1.1. ...转载 2018-07-06 08:34:46 · 469 阅读 · 0 评论 -
Navicat Premium 12.0.18安装与激活(转)
随笔- 330 文章- 0 评论- 26转载:https://www.jianshu.com/p/42a33b0dda9c一、Navicat Premium 12下载Navicat Premium 12是一套数据库开发管理工具,支持连接 MySQL、Oracle等多种数据库,可以快速轻松地创建、管理和维护数据库。Navicat Premium 12简体中文下载:...转载 2019-06-19 17:50:35 · 391 阅读 · 0 评论 -
100万并发连接服务器笔记之Java Netty处理1M连接会怎么样
五 100万并发连接服务器笔记之Java Netty处理1M连接会怎么样2014年05月21日 14:13:56 mergerly 阅读数:20545前言每一种该语言在某些极限情况下的表现一般都不太一样,那么我常用的Java语言,在达到100万个并发连接情况下,会怎么样呢,有些好奇,更有些期盼。这次使用经常使用的顺手的netty NIO框架(netty-3.6.5.Final),封装...转载 2019-02-26 09:35:30 · 471 阅读 · 0 评论 -
使用visualvm 远程监控 JVM
使用visualvm 远程监控 JVM#!/bin/bashjava -Djava.rmi.server.hostname=10.153.14.8 \ -Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=8888 \ -Dcom.sun.management.jmxremot...转载 2018-11-14 14:21:21 · 8967 阅读 · 0 评论 -
了解Java中的内存泄漏
了解Java中的内存泄漏Java高级架构进阶 2018-11-12 17:35:261. 简介Java的核心优势之一是在内置垃圾收集器(简称GC)的帮助下实现自动内存管理。GC隐含地负责分配和释放内存,因此能够处理大多数内存泄漏问题。虽然GC有效地处理了大部分内存,但它并不能成为保证内存泄漏的万无一失的解决方案。GC很聪明,但并不完美。即使在尽职尽责的开发人员的应用程序中,内存仍然...转载 2018-11-13 08:22:22 · 164 阅读 · 0 评论 -
理解 Storm 拓扑的并行度(parallelism)概念
组成:一个运行中的拓扑是由什么构成的:工作进程(worker processes),执行器(executors)和任务(tasks)!在一个 Storm 集群中,Storm 主要通过以下三个部件来运行拓扑:工作进程(worker processes) 执行器(executors) 任务(tasks).` 下面是他们之间相互关系的简单图示。在 Worker 中运行的是拓...转载 2018-07-19 14:03:34 · 1914 阅读 · 0 评论 -
Java内存溢出问题总结
使用Java那么久,在此总结一下Java中常见的内存溢出问题以及对应的解决思路堆溢出报错信息java.lang.OutOfMemoryError: Java heap space报错原因堆中(新生代和老年代)无法继续分配对象了; 某些对象的引用长期被持有没有被释放,垃圾回收器无法回收; 使用了大量的 Finalizer 对象,这些对象并不在 GC 的回收周期内。...转载 2018-07-19 14:00:51 · 941 阅读 · 0 评论 -
nf_conntrack连接跟踪模块
2017年10月20日 10:38:04阅读数:2848nf_conntrack连接跟踪模块在iptables里,包是和被跟踪连接的四种不同状态有关的。它们分别是NEW,ESTABLISHED,RELATED和INVALID。后面我们会深入地讨论每一个状态。使用iptables的state模块可以匹配操作这几种状态,我们能很容易地控制“谁或什么能发起新的会话”。为什么需要这种状态跟踪机制呢?比如你...转载 2018-07-08 10:10:44 · 1355 阅读 · 1 评论 -
修改tcp内核参数:somaxconn
修改somaxconn该内核参数默认值一般是128(定义了系统中每一个端口最大的监听队列的长度),对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大。echo 2048 > /proc/sys/net/core/somaxconn 但是这样系统重启后保存不了在/etc/sysctl.conf中添加如下net.core.somaxconn = 2048然后在终端中执行...转载 2018-07-08 10:10:49 · 1504 阅读 · 0 评论 -
【JConsole】如何利用 JConsole观察分析Java程序的运行,进行排错调优
一、JConsole是什么 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码。二、如何启动JConsole如果是从命令行启动,使 JDK 在...转载 2018-07-19 08:51:35 · 555 阅读 · 0 评论 -
jvm系列(三):java GC算法 垃圾收集器
jvm系列(三):java GC算法 垃圾收集器 GC算法 垃圾收集器概述垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾...转载 2018-07-17 13:01:32 · 130 阅读 · 0 评论 -
旁观者-郑昀博客java调优
参与软件开发这些年来,不断地遇到新领域新知识点,屡屡感受到新进入者的迷惑和彷徨,所以对遇到的每一个问题都详细记录问题现象、解决思路以及解决方案,并在blog中留下印迹,以备他日有心人google之而知之。你们的新手之痛,你们的新业务发展之初的思路混沌,我都感同身受,所以欢迎和我一起探讨这些话题,诸如Semantic/NLP/Mashup/J2ME/IVR/SMS/WAP/Python等,知无不言言...转载 2018-07-11 08:38:36 · 699 阅读 · 0 评论 -
linux下利用nohup后台运行jar文件包程序
Linux 运行jar包命令如下: 方式一: java -jar XXX.jar特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar XXX.jar &&代表在后台运行。 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup ...转载 2018-07-10 10:59:43 · 2752 阅读 · 0 评论 -
三个实例演示 Java Thread Dump 日志分析
三个实例演示 Java Thread Dump 日志分析jstack Dump 日志文件中的线程状态dump 文件里,值得关注的线程状态有:死锁,Deadlock(重点关注) 执行中,Runnable 等待资源,Waiting on condition(重点关注) 等待获取监视器,Waiting on monitor entry(重点关注)暂停,Suspended对象等待中,Object.wa...转载 2018-07-10 10:42:36 · 1336 阅读 · 0 评论 -
Java虚拟机学习 - 内存调优
2016年12月05日 17:12:37阅读数:201VM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略。由于GC开始垃圾回收时会挂起应用线程,严重影响了性能,调优的目是为了尽量降低GC所导致的应用线程暂停时间、 减少Full GC次数。代大小调优最关键参数:-Xms、 -Xmx 、-Xmn 、-XX:SurvivorRatio、-XX:MaxTenuringThreshold、...转载 2018-06-30 19:16:03 · 107 阅读 · 0 评论 -
Java虚拟机学习 - 内存调优
2016年12月05日 17:12:37阅读数:201VM调优主要是针对内存管理方面的调优,包括控制各个代的大小,GC策略。由于GC开始垃圾回收时会挂起应用线程,严重影响了性能,调优的目是为了尽量降低GC所导致的应用线程暂停时间、 减少Full GC次数。代大小调优最关键参数:-Xms、 -Xmx 、-Xmn 、-XX:SurvivorRatio、-XX:MaxTenuringThreshold、...转载 2018-06-30 18:57:58 · 123 阅读 · 0 评论 -
Java虚拟机学习 - 体系结构 内存模型
2016年12月05日 10:34:30阅读数:164一:Java技术体系模块图二:JVM内存区域模型1.方法区也称"永久代” 、“非堆”, 它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-XX:PermSize 和 -XX:MaxPermSize 参数限制方法区的大小。运行时常量池:是方法区的一部分,Class文件中除了...转载 2018-06-30 18:57:24 · 115 阅读 · 0 评论 -
JVM原理图
2016年11月23日 11:13:24阅读数:211从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别对于JVM自身的物理结构,我们可以从下图鸟瞰一下:对于JVM的学习,在我看来这么几个部分最重要:Java代码编译和执行的整个过程JVM内存管理及垃圾回收机制Java代码编译是由Java源码编译器来完成,流程图...转载 2018-06-30 18:53:09 · 292 阅读 · 0 评论 -
jvm的GC日志分析
2016年11月30日 16:58:17阅读数:273VM的GC日志的主要参数包括如下几个:-XX:+PrintGC 输出GC日志-XX:+PrintGCDetails 输出GC的详细日志-XX:+PrintGCTimeStamps 输出GC的时间戳(以基准时间的形式)-XX:+PrintGCDateStamps 输出GC的时间戳(以日期的形式,如 2013-05-04T21:53:59.234+...转载 2018-06-30 18:51:20 · 324 阅读 · 0 评论 -
jvm
原创 2018-06-23 12:46:35 · 111 阅读 · 0 评论 -
启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法
启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!原创 2017年02月23日 20:53:283837由于安装jdk安装了多个版本,用其他开发工具,某天再打开eclipse时弹出“Failed to load the JNI shared library jvm.dll”原因:eclipse的版本与jre或者j...转载 2018-04-08 13:38:21 · 4268 阅读 · 0 评论 -
jvm调节
使用 TDA 工具,看到大量 Java Thread State 的第一反应是:1,线程状态为“waiting for monitor entry”:意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。此时线程状态一般都是 Blocked:java.lang.Thread.State: BLOCKED (on object monitor) 2,线程状态为“waiting...转载 2018-07-10 13:09:59 · 529 阅读 · 0 评论 -
线上Java应用排查和诊断规范
@郑昀 整理标准做法一:OOM触发HeadpDump目的:OOM发生时,输出堆栈快照文件,供研发人员分析。在JVM中,如果98%的时间是用于 GC 且可用的 Heap size 不足2%的时候,将抛出 OOM 异常。配置操作:Resin/Tomcat 配置文件里追加 -XX:+HeapDumpOnOutOfMemoryError ,当 OutOfMemoryException 错误发生时,会自动生...转载 2018-07-10 13:11:39 · 235 阅读 · 0 评论 -
JDBC驱动自身问题引发的FullGC
JDBC驱动自身问题引发的FullGC公众号HelloJava刊出一篇《MySQL Statement cancellation timer 故障排查分享》,作者的某服务的线上机器报 502(502是 nginx 做后端健康检查时不能连接到 server 时抛出的提示),他用 jstack -l 打印线程堆栈,发现了大量可疑的“MySQL Statementcancellation timer”,...转载 2018-07-10 13:17:34 · 618 阅读 · 0 评论 -
Java JVM 性能调优笔记
Java JVM 性能调优笔记2016年04月22日 00:11:59阅读数:474Java性能调优笔记调优步骤:衡量系统现状、设定调优目标、寻找性能瓶颈、性能调优、衡量是否到达目标(如果未到达目标,需重新寻找性能瓶颈)、性能调优结束。寻找性能瓶颈性能瓶颈的表象:资源消耗过多、外部处理系统的性能不足、资源消耗不多但程序的响应速度却仍达不到要求。资源消耗:CPU、文件IO、网络IO、内存。外部处理系...转载 2018-07-04 09:13:08 · 189 阅读 · 0 评论 -
【Java虚拟机学习】-GC策略算法
2017年11月22日 17:16:31阅读数:93概述思考GC需要完成的3件事情:哪些内存需要回收?什么时候回收?如何回收?再回头看看第二章介绍的Java内存运行时区域的各个部分:程序计时器、虚拟机栈、本地方法栈:随线程而灭,栈帧随方法而进行出栈和入栈,每一个栈帧分配的内存在类结构确定就已知,因此这几个区域不需要考虑回收;对于Java堆和方法区,只有程序运行期间才知道会创建哪些对象,内存的分配和...转载 2018-07-04 09:12:01 · 175 阅读 · 0 评论 -
JVM启动参数推荐
2017年12月10日 14:20:48阅读数:101在关键的业务系统里,除了继续追求技术人员最爱的高吞吐与低延时之外,系统的稳定性与出现问题时排查的便捷性也很重要。看到白衣16年的这篇文章总结的很全面,转载学习下,原文:《关键业务系统的JVM启动参数推荐》http://calvin1978.blogcn.com/articles/jvmoption-2.html 前言1,资料学习开源项目的启动脚...转载 2018-07-04 09:11:20 · 576 阅读 · 0 评论 -
fullGC过于频繁的原因和解决方案
2016年04月10日 23:02:43阅读数:2689案例1 系统高峰期fullGC频繁,优化后恢复正常。 导致原因: 系统中有一个调用频繁的接口会调用下面这个方法,目的是获取图片的宽高信息,但是Image这个对象用完不会自动释放,需要手动调用 flush()方法;以前没有调用这个方法,就导致一有请求就会有大对象进入old区,在业务高峰期old区一会就被打满,所以一直进行fgc。public s...转载 2018-07-04 09:10:00 · 24722 阅读 · 0 评论