我有一个Java Web应用程序,它从JAR运行,启动embedded式Tomcat并使用Spring Boot。 问题是在KVM虚拟客户端运行时运行速度非常慢。 同一个JDK( Java(TM) SE Runtime Environment (build 1.8.0_72-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode ))中的相同应用程序在裸机上启动8秒,但在虚拟化系统中需要40秒,两个操作系统都是Ubuntu 15.10(内核4.2.0-27-通用),这不仅仅是启动问题,应用程序对每个HTTP请求的响应都非常缓慢。 我试图改变有关SecureRandom的Java设置,但没有任何改变。 -Djava.security.egd=file:///dev/urandom 虚拟访客中的SecureRandom和随机熵: https : //security.stackexchange.com/questions/14386/what-do-i-need-to-configure-to-make-sure-my-software-uses-dev-urandom https://stackoverflow.com/questions/137212/how-to-solve-performance-problem-with-java-securerandom 但它没有帮助我。 你有其他的build议,该怎么办? 谢谢。 我的虚拟主机是一个新的服务器有大量的RAM,固态硬盘..所以我很确定没有硬件问题。 我也运行其他KVM虚拟客户端,没有任何问题。 只有慢的Java应用程序。
我正在尝试使用nagios nrpefunction来监视Java内存使用情况。 所以我下载并安装check_jstat并在远程服务器上安装插件。 当我跑下面是结果: OK: jstat process 819 alive|pid=819 heap=344409;3072000;11;-1;-1 perm=156121;1198080;13;-1;-1 当我从nagios服务器运行它时,我得到: root@ip-xx-xx-xx-xx:/usr/local/nagios/libexec# ./check_nrpe -H 172.31.5.84 -c check_jstat NRPE: Unable to read output root@ip-xx-xx-xx-xx:/usr/local/nagios/libexec# ./check_nrpe -H 172.31.5.84 -c check_jstat -w 80 -c 90 NRPE: Unable to read output 以下是我的configuration: 在远程服务器上: command[check_jstat]=sudo /usr/lib/nagios/plugins/check_jstat -p `pgrep java` -w 85 -c 95 在Nagios服务器上: define service{ use generic-service ; […]
我们有一台Windows Server 2012 R2机器,我们将其用作员工的远程桌面服务服务器。 它具有“RemoteApp”function,使每个人都可以运行我们的预configuration软件,而无需安装在本地机器上。 我安装了Java Runtime的最新版本(Java 8 Update 73),Oracle网站本身能够validation安装。 另外,我们的桌面程序也需要Java运行时。 但是当我打开任何提示允许或阻止插件的网站时,提示只是重新出现。 “该网页希望运行以下附件:”Oracle America,Inc.“的”Java SE Runtime Environment 8 Update 73“。 如果我点击允许,页面刷新和提示马上回来。 即使我select“允许所有网站”,它也会不断回来。 我已经尝试做一个完整的IE重置为出厂默认值,然后重新启用插件和提示仍然会继续出现。 我认为这可能是特定于网站的(我们正在尝试将其设置为使用我们的热敏打印机来打印UPS标签),所以我试过这个网站: http : //www.pinlady.net/PluginDetect/Java/ 同样的行为。 提示只是popup,没有任何反应。 我将Internet选项设置与另一个2012 R2机器进行了比较,这个机器与Java一起工作良好,而且它们是相同的。 我也试着完全卸载Java并重新安装它。 没有骰子。 我还能做些什么来解决这个问题?
我目前在Tomcat中运行一个应用程序,但也想在同一台服务器上部署Play Framework。 由于许可的原因,这是成本效益,但能够在更强大的情况下使用多余的CPU使用率也应该是有益的。 如果我在同一个(Joyent / SmartOS)服务器上运行Tomcat和Play,有没有办法确保一个应用程序不占用所有的CPU? 如果我想要一个50/50的分割,那会是自然而然的发生吗? 如果我想要一个应用程序有至less75%的可用,另一个有最低25%的应用程序呢? 看起来有可能使用单独区域的CPU份额来做到这一点,但是我不确定这是否可以用于SmartOS区域内的不同进程,或者是否有其他工具来处理这个问题。
我正在构build一个基于Spark mini-framework( http://sparkjava.com/ )的API, 每当我通过Maven构build一个包,然后上传到Tomcat 7下的webapps /文件夹。 (真实姓名已被replace为TestProject,以避免泄露任何propriary) 如果我编译该项目并将其命名为TestProject.war,则会加载以下信息: path :/ TestProject 版本 : 没有指定 打开http:// localhost:8080 / TestProject / I后,得到预期的输出: {“code”:400,“message”:“授权信息未在请求中指定”} 如果我然后将文件重命名为TestProject ## 0.0.1-SNAPSHOT_20160308.161909.war并重新启动Tomcat,应用程序将加载以下详细信息: path :/ TestProject 版本 :0.0.1-SNAPSHOT_20160308.161909 不幸的是,当打开相同的URL时,Tomcat返回404: HTTP状态404 – / 键入状态报告 消息 / 说明请求的资源不可用。 阿帕奇 Tomcat的/ 7.0.67 $ cat web.xml <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > […]
最初这个活动是在我们的系统上安装WAS 7.0.0.39 fixpack开始的。 UpdateInstaller已成功升级到7.0.0.39,以及WAS和Java。 WAS使用wassrvr id进行安装,而webserver使用webserver id进行安装。 在将id切换到webserver并尝试使用update.sh命令安装IBM HTTP插件和IHS服务器的update.sh ,出现以下错误: [$WAS_HOME/UpdateInstaller]$ ./update.sh Executing command: $WAS_HOME/UpdateInstaller/java/jre/bin/java -cp $WAS_HOME/UpdateInstaller/update.jar -Xms48m -Xmx384m run JVMJ9VM019E Unrecoverable error: Unable to find and initialize required class java/lang/Object JVMJ9VM020I Searched in $WAS_HOME/UpdateInstaller/java/jre/lib/ppc64/default/jclSC160/vm.jar JVMJ9VM020I Searched in $WAS_HOME/UpdateInstaller/java/jre/lib/annotation.jar JVMJ9VM020I Searched in $WAS_HOME/UpdateInstaller/java/jre/lib/beans.jar JVMJ9VM020I Searched in $WAS_HOME/UpdateInstaller/java/jre/lib/java.util.jar JVMJ9VM020I Searched in $WAS_HOME/UpdateInstaller/java/jre/lib/jndi.jar JVMJ9VM020I Searched in $WAS_HOME/UpdateInstaller/java/jre/lib/logging.jar […]
我想使用Java任务控制(JMC)监视一个java应用程序,我将通过JMX公开某些信息。 在JMC中,可以设置警报,以便在某些JMX属性违反某些条件时触发。 但是为了实现这个function,您必须手动启动JMC,然后连接到JMX服务器,然后手动select要触发的警报。 有什么办法可以启动JMC作为守护进程,并让它自动激活我的警报?
监控Java REST API的最佳解决scheme是什么? 要收集的指标包括API响应时间,点击次数,失败次数等 我已经使用石墨(performance不佳)。 谢谢
我有一个web应用程序无法在Linux安装上的Tomcat中启动。 当使用独立的Tomcat时,应用程序可以在不同的机器上安装在同一台机器上。 这个问题似乎是由于Tomcat开始的方式。 当通过包pipe理器安装Tomcat时,使用service tomcat8 start失败; 当通过软件包pipe理器安装Tomcat时,使用/etc/init.d/tomcat8 start失败; 使用独立的tomcat,并从service tomcat8 start (修改/etc/init.d/tomcat8 )失败; 使用独立的tomcat并开始使用./startup.sh工作。 我正在使用Debian 8,Tomcat 8.0.11(但已尝试8.0.9和8.0.11)和各种版本的Java。 该应用程序由于一个名为Atomikos的java事务pipe理器而失败 。 错误是: SEVERE:发送上下文初始化事件给类的监听器实例的exceptionuk.co.prodia.talkingcouch.ApplicationContextListener org.springframework.beans.factory.BeanCreationException:在类path资源[config / applicationContext-db -sessionfactory.xml]:设置bean属性'transactionManager'时,无法parsing对bean'atomikosTransactionManager'的引用; 嵌套的exception是org.springframework.beans.factory.BeanCreationException:在类path资源[config / applicationContext-db-sessionfactory.xml]中定义的名为'atomikosTransactionManager'的bean创build错误:调用init方法失败; 嵌套exception是javax.transaction.SystemException:事务服务没有在org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)上运行org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver .java:108)at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481) 有没有人有什么build议?
我正在使用免费版本的PDQ Deploy在域中的客户端计算机上部署Java更新,使用可执行安装程序,而不是提取的MSI。 根据Oracle文档 ,不需要创buildconfiguration文件。 命令行开关可能具有相同的值。 我们的一些客户需要Java 6保持安装。 这就是为什么我在这些客户端上执行静态安装的原因。 下面是我的挑战:当我在这些客户端上部署最新版本(Java 8u91)时,Java 6将被删除。 这些是我使用的命令: jre-6u45-windows-i586.exe /s STATIC=**1** SPONSORS=**0** jre-8u91-windows-i586.exe INSTALL_SILENT=1 AUTO_UPDATE=0 REBOOT=0 SPONSORS=0 REMOVEOUTOFDATEJRES=1 要么 jre-6u45-windows-i586.exe /s STATIC=**Enable** SPONSORS=**Disable** jre-8u91-windows-i586.exe INSTALL_SILENT=1 AUTO_UPDATE=0 REBOOT=0 SPONSORS=0 REMOVEOUTOFDATEJRES=1 我testing了两个选项“启用”或“1”/“禁用”或“0” 使用“REMOVEOUTOFDATEJRES = 0”不是一个真正的select,因为我不希望那些同时安装了Java6u45和Java8u71,Java8u73和Java8u77和Java8u91的客户端… 所以这里是我的问题:如果我使用“REMOVEOUTOFDATEJRES = 1”或者我做错了,“静态安装”通常会被删除吗? 他们没有真正提到它的文档,而是他们谈论Java自动更新: 如果执行JRE的静态安装(通过指定命令行或configuration文件选项STATIC = 1),则Java自动更新function将在Java更新期间安装JRE。 相同JRE系列的更高版本将安装在单独的目录中。 这种模式可以确保需要特定版本JRE的厂商可以确定JRE不会被新版本覆盖。 在这个关于Java 7的页面上 ,他们说: 当JRE以静态模式安装时,它将不会被更新版本更新。 相同JRE系列的更高版本将安装在单独的目录中。 这种模式可以确保需要特定版本的JRE产品的供应商可以确定JRE不会被以后的版本覆盖。 静态JRE安装的一些特征如下: 静态JRE安装(例如7 Update […]