导航:首页 > 编程语言 > jstatd默认端口

jstatd默认端口

发布时间:2024-04-13 12:31:08

『壹』 java RMI 如何返回远程对象的引用

利用java的对象序列化和反序列化来传递对象就OK了。

序列化需要实现接口Serializable
需要定义序列化idserialVersionUID;

大致代码如下:

	cvoidSerializePerson()throwsFileNotFoundException,IOException{
Objectobj=newObject();
//ObjectOutputStream对象输出流,将对象存储到E盘的obj.txt文件中,完成对Object对象的序列化操作
ObjectOutputStreamos=newObjectOutputStream(newFileOutputStream(newFile("E:/obj.txt")));
os.writeObject(obj);
System.out.println("序列化成功!");
os.close();
}

()throwsException,IOException{
ObjectInputStreamois=newObjectInputStream(newFileInputStream(newFile("E:/obj.txt")));
Objectobj=ois.readObject();
System.out.println("反序列化成功!");
returnobj;
}

另外有点好奇RMI这玩意多麻烦呀,老早就没啥人用了吧。。。。。。

对了 序列化成jsON格式,接收后再转换回来会更方便!

『贰』 如何用VisualVM连接远程Tomcat

1、设置Tomcat的JAVA_OPTS参数:
JAVA_OPTS="$JAVA_OPTS
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=10.154.252.108"

此处IP填的是所在远程机器的IP(hostname -i ),需要确保这个端口没程序占用。
可以直接把这个参数写入到catalina.sh文件中。

2、添加JMX连接,并填入IP和刚刚设置的端口。

连接完成之后,监视、线程、概述选项卡可以正常显示,也可以添加插件,选择“工具 - 插件”。可以添加新的插件,此处我们添加了一个名叫 Visual GC 的插件,用于监控JVM 的垃圾回收情况。

4、美中不足的是, Visual GC 并不买账,无法显示。

Visual GC uses the jvmstat technology to gather data from the monitored application. This means that the monitored application must either run locally or there must be a jstatd agent up and running on the remote system. For remote applications added using the JMX connection you will only see the "Not supported for this JVM" message - there's no jvmstat available.
引用自:https://blogs.oracle.com/nbprofiler/entry/visual_gc_plugin_2_0
使用JMX监控的功能不支持Visual GC,需要以jstatd的方式来监控。

5、使用Jstatd方式关联监控
Jstatd方法是利用后台的RMI守护进程来实现对远程JVM的监控。启动jstatd不复杂,
找到tomcat所在机器的Java目录,在bin目录下首先创建一个监控策略文件:
?

1
2
3
4

vi jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};

把"${java.home}/../"替换成JAVA安装目录。然后执行如下命令启动jstatd:jstatd -J-Djava.security.policy=jstatd.all.policy

查看jstatd是否启动:
[root@vm-10-154-252-108 bin]# jps -l 127.0.0.1
8618 sun.tools.jps.Jps
7516 sun.tools.jstatd.Jstatd
15815 org.apache.catalina.startup.Bootstrap
7670 org.apache.catalina.startup.Bootstrap
21315 org.apache.catalina.startup.Bootstrap
21481 org.apache.catalina.startup.Bootstrap
11470 org.apache.catalina.startup.Bootstrap
15649 org.apache.catalina.startup.Bootstrap
15732 org.apache.catalina.startup.Bootstrap
21398 org.apache.catalina.startup.Bootstrap
11634 org.apache.catalina.startup.Bootstrap

5、删除VisualVM之前对Tomcat的监控,添加“远程主机”,输入主机IP,通过“高级设置”可以看到远程主机默认是jstatd方式监控的。

点击确定,将会列出该机器上所有的可监控的Java程序,

找到我们需要监控的程序PID,双击:

『叁』 如何优化tomcat配置

Tomcat有很多方面,我从内存、并发、缓存四个方面介绍优化方法。
一.Tomcat内存优化

Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS 参数。
JAVA_OPTS参数说明
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;
-XX:PermSize 内存永久保留区域
-XX:MaxPermSize 内存最大永久保留区域
服务器参数配置

现公司服务器内存一般都可以加到最大2G ,所以可以采取以下配置:

JAVA_OPTS='-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'

配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:
首先查看Tomcat 进程号:

sudo lsof -i:9027

我们可以看到Tomcat 进程号是 12222 。
查看是否配置生效:

sudo jmap – heap 12222

我们可以看到MaxHeapSize 等参数已经生效。、
二.Tomcat并发优化

1.Tomcat连接相关参数

在Tomcat 配置文件 server.xml 中的 <Connector ... /> 配置中

1>参数说明

minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75
acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为30000 毫秒。
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。
web server允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows 是 2000 个左右, Linux 是 1000 个左右。

2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
minProcessors="100"
maxProcessors="1000"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>

2.调整连接器connector的并发处理能力

1>参数说明

maxThreads 客户请求最大线程数
minSpareThreads Tomcat初始化时创建的 socket 线程数
maxSpareThreads Tomcat连接器的最大空闲 socket 线程数
enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名
redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
connectionTimeout 连接超时
minProcessors 服务器创建时的最小处理线程数
maxProcessors 服务器同时最大处理线程数
URIEncoding URL统一编码

2>Tomcat中的配置示例

<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>

3.Tomcat缓存优化

1>参数说明

c ompression 打开压缩功能
compressionMinSize 启用压缩的输出内容大小,这里面默认为2KB
compressableMimeType 压缩类型
connectionTimeout 定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间

2>Tomcat中的配置示例
<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>

4.参考配置

1>旧有的配置

参考网络对服务器做过如下配置,拿出来分享下:

<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="200"
redirectPort="8443"
disableUploadTimeout="true" />

后来发现在访问量达到3 百万多的时候出现性能瓶颈。
2>更改后的配置

<Connector port="9027"
protocol="HTTP/1.1"
maxHttpHeaderSize="8192"
maxThreads="1000"
minSpareThreads="100"
maxSpareThreads="1000"
minProcessors="100"
maxProcessors="1000"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000"
URIEncoding="utf-8"
acceptCount="1000"
redirectPort="8443"
disableUploadTimeout="true"/>

『肆』 在新建虚拟机时出现问题

JConsole

JConsole 图形用户界面是一种符合 Java 管理扩展(JMX)规范的监视工具。JConsole 使用 Java 虚拟机 (Java VM) 的广泛检测来提供有关在 Java 平台上运行的应用程序的性能和资源消耗的信息。

使用方法 本地

阅读全文

与jstatd默认端口相关的资料

热点内容
word2007自动分页 浏览:648
怎么复制钢笔工具画出来的线条 浏览:882
数据库哪些比较好 浏览:38
ps人物美白去斑教程 浏览:66
打开软件弹出无效文件提示 浏览:704
学习四级听力app哪个好 浏览:561
mac如何下载win10镜像文件 浏览:624
日版a1453卡贴机升级 浏览:912
javascript全局变量局部变量 浏览:496
大数据的底表是什么意思 浏览:981
龙与城取物下载什么app 浏览:19
山西大同哪里学编程课 浏览:316
许可证与配置文件 浏览:140
华为怎么连接电脑数据线 浏览:288
核实数据后如何回复 浏览:572
jsb标签放不了数字吗 浏览:146
虚拟内存的数据存放在哪里 浏览:601
神王霸业如何挂机升级 浏览:706
ps能否打开raf文件 浏览:496
华为手机文件夹清理 浏览:849

友情链接