导航:首页 > 编程语言 > 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默认端口相关的资料

热点内容
图片打开变成文件 浏览:194
松下微单电脑传文件软件 浏览:574
苹果蓝牙键盘surface 浏览:170
mindmaplinux 浏览:733
oppo手机怎么连接电脑传输数据 浏览:624
word删除尾注分隔符 浏览:773
公告质疑需要哪些文件 浏览:608
数据库模型是干什么的 浏览:404
win10的驱动怎么安装驱动 浏览:320
word文件水印怎么取消 浏览:443
rhel6的镜像文件在哪里下载 浏览:571
成功正能量微信头像 浏览:848
wps表格如何恢复数据 浏览:264
linuxc静态库创建 浏览:838
u盘有微信文件但微信恢复不了 浏览:585
苹果的网站数据是什么 浏览:22
ps滚字教程 浏览:237
win7网络邻居如何保存ftp 浏览:186
安卓客户端代理服务器 浏览:572
编程用苹果 浏览:659

友情链接