导航:首页 > IDC知识 > 服务器jvm

服务器jvm

发布时间:2021-01-02 23:11:17

1、JVM在大内存服务器上怎么充分利用硬件资源

1. 采用64位操作系统,并为JVM分配大内存
如果JVM中堆内存太小,那么就会频繁地发生垃圾内回容收,而垃圾回收都会伴随不同程度的程序停顿,因此,如果扩大堆内存的话可以减少垃圾回收的频率,从而避免程序的停顿。
2. 使用32位JVM集群
在一台服务器上运行多个服务器程序,这些程序都运行在32位的JDK上。然后再运行个服务器作为反向代理服务器,由它来实现负载均衡。
由于32位JDK最多支持2G内存,因此每个虚拟结点的堆内存可以分配1.6G,一共运行10个虚拟结点的话,这台物理服务器可以拥有16G的堆内存。

2、java项目放服务器上报jvm错误,但是服务器上有一个javaweb项目在运行,请问这个是怎么回事

类型转换来错误,可能是有源jar包存在版本冲突。相同的方法名,但是参数不同。本地class load的顺序和服务器上的加载顺序不同导致本地调用了正确的方法,但服务器上调用了错误的方法。建议检查报错的类方法,在项目中的jar中是否存在多个。

3、jvm和WEB服务器的作用

JSP的运行环境是JVM和Tomcat(一般是它)吧,JAVA虚拟机(JVM)是作用是解析并执行JAVA代码.WEB服务器就是Tomcat,EJB,或是WEBlogec,开启WEB服务器就可以对客户提交的数据进行响应

4、JVM client模式和Server模式的区别

这里向大家描述一下JVM client模式和Server模式两者的区别和联系,JVM如果不显式指定是-Server模式还是-client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本)。

JVM client模式和Server模式

JVM Server模式与client模式启动,最主要的差别在于:-Server模式启动时,速度较慢,但是一旦运行起来后,性能将会有很大的提升。JVM如果不显式指定是-Server模式还是-client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本)。

前段时间有个同事给我发了个java跟c++性能比较的文章,其中有个对比图引起了我的兴趣,意外的是,我感兴趣的不是java和c++的对比,而是java -Server模式和java -client模式的对比。从来没想到两者间的性能有如此巨大的差别。而在后来自己的亲身测试中发现确实如此。

下面是我看到的那个对比图:

图中最显著的就是JVM client模式和Server模式关于method call的对比,那个差别不是一般的大,在后来的测试中发现,相差至少有10倍。

下面是另外两个对比图:

  

JVM工作在Server模式可以大大提高性能,但应用的启动会比client模式慢大概10%。当该参数不指定时,虚拟机启动检测主机是否为服务器,如果是,则以Server模式启动,否则以client模式启动,J2SE5.0检测的根据是至少2个CPU和最低2GB内存。

当JVM用于启动GUI界面的交互应用时适合于使用client模式,当JVM用于运行服务器后台程序时建议用Server模式。
JVM在client模式默认-Xms是1M,-Xmx是64M;JVM在Server模式默认-Xms是128M,-Xmx是1024M。我们可以通过运行:java -version来查看jvm默认工作在什么模式。

5、Eclipse启动Jboss服务器,如何指定JVM虚拟内存大小?

eclipse指定JVM虚拟内存大小抄:
所有在袭-vmargs之后的参数将会被传输给JVM,所有如果所有对Eclipse 设置的参数必须写在-vmargs之前(就如同你在命令行上使用这些参数一样)
默认情况下,eclipse.ini的内容如下:

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m

上面的配置表示堆空间初始大小为40M,最大为256M,PermGen最大为256M。

6、如何将was服务器的jvm调大

代码
1.// {
2.// "phone" : ["12345678", "87654321"], // 数组
3.// "name" : "yuanfei89", // 字符串
4.// "age" : 100, // 数值
5.// "address" : { "country" : "china", "province" : "jiangsu" }, // 对象
6.// "married" : false // 布尔值
7.// }
8.
9.private static final String JSON =
10."{" +
11. " \"phone\" : [\"12345678\", \"87654321\"]," +
12. " \"name\" : \"yuanfei89\"," +
13. " \"age\" : 100," +
14. " \"address\" : { \"country\" : \"china\", \"province\" : \"jiangsu\" }," +
15. " \"married\" : false," +
16."}";
17.
18.try {
19. JSONTokener jsonParser = new JSONTokener(JSON);
20. // 此时还未读取任何json文本,直接读取就是一个JSONObject对象。
21. // 如果此时的读取位置在"name" : 了,那么nextValue就是"yuanfei89"(String)
22. JSONObject person = (JSONObject) jsonParser.nextValue();
23. // 接下来的就是JSON对象的操作了
24. person.getJSONArray("phone");
25. person.getString("name");
26. person.getInt("age");
27. person.getJSONObject("address");
28. person.getBoolean("married");
29.} catch (JSONException ex) {
30. // 异常处理代码
31.}

7、如何设置代理服务器使用的JVM

Java中,使用proxy是通过设置java环境变量来实现的,也就是JVM的系统属性。我们需要设置三个内属性,proxySetproxyHost和容proxyPort。proxySet是个boolean类型的,可以设置为true或者false,true代表使用代理服务器。proxyHost是代理服务器的

8、如何jvm监控linux服务器

如何配置visualvm监控
visualvm支持在和windows上启用图形界面监控jvm的资源,但是如何可以使我们在windows上监控到远程linux服务器资源,这还需要做一些配置,此文是在原文基础上做了更改的,希望对大家能有所帮助。
(1)首先要修改JDK中JMX服务的配置文件,以获得相应的权限:
进入$JAVA_HOME所在的根目录的/jre/lib/management子目录下,
a. 将jmxremote.password.template文件复制为jmxremote.password
b. 调整jmxremote.access和jmxremote.password的权限为只读写,可以使用如下命令
chmod 600 jmxremote.access jmxremote.password
c. 打开jmxremote.password文件,去掉
# monitorRole QED
# controlRole R&D
这两行前面的注释符号
(2)修改env.sh
打开env.sh文件,并在JVM的启动配置中添加如下信息:
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=10.20.150.218 其他配置”
这几个配置的说明如下:
-Dcom.sun.management.jmxremote.port:这个是配置远程connection的端口号的,要确定这个端口没有被占用
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false:这两个是固定配置,是JMX的远程服务权限的
-Djava.rmi.server.hostname:这个是配置server的IP的,要使用server的IP最好在机器上先用hostname –i看一下IP是不是机器本身的IP,如果是127.0.0.1的话要改一下,否则远程的时候连不上,目前我们的server上我已经都改好了
(3)Windows客户端配置
JDK 1.6版本自带visualvm,只需要进到bin目录下启动即可
启动后页面比较简洁,配置也很简单:
a. 点击左侧菜单的add Remote host,输入server的IP,然后再advanced settings里配置端口(注意这个端口要和server上的端口一致)
b. 右击刚才配置的IP,选择JMX connection方式,再次输入端口,就可以监视到JVM资源了

9、websphere服务器jvm设置

最小值无所谓,主要是最大值不够的话,程序如果用光了堆内存就会出错退出。如果这台内机器是专用给一个 websphere 用的容话,可以把内存尽可能地设置大,比如最大12G -Xmx12288m 给 JVM。这个数字是说当 JVM 觉得内存紧张时就去尝试申请堆内存直到达到了 -Xmx12288m 这个上限为止。当它觉得不需要这么多内存时它并不会立即去尝试申请这么多,比如刚启动时它只会申请比 -Xms512m 这样的最小值略多一点的内存。

如果程序需要缓存较多数据时就可以尽量用最大内存,比如13G。像批量的数据在内存中比较和处理时。

与服务器jvm相关的知识