我在CentOS 7虚拟机上遇到一个奇怪的问题,我看不到是什么原因造成的。 我在Digital Ocean上创build了虚拟机,并将其设置如下: 1)用myhostname修改/etc/hostname 2)修改/etc/hosts等 127.0.0.1 localhost.localdomain localhost 127.0.0.1 localhost4.localdomain4 localhost4 123.456.789.123 myhostname.mydomainname.com myhostname ::1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 3)configurationnginx来反向代理 server { listen 80; server_name myhostname.mydomainname.com; gzip on; location / { proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:8080/; } } 而已。 然后我从https://tomcat.apache.org/下载了一个vanilla Apache Tomcat,并在我的(非root)用户的家中解压。 […]
我有一个遗留的Web应用程序,运行在Java6的Tomcat7上,并对多个外部服务进行Web服务调用。 其中一家服务提供商决定终止对TLS1的支持。 我试着将JVM升级到java7和java8,看看会发生什么。 那么,在java8中,默认的TLS1.2受影响的服务工作。 但其他服务受到影响。 有没有一种方法来指定TLS版本的服务不改变代码?
客户提供了一个Windows Server 2012 R2实例用作我们的服务器。 今天上午(7月25日),我重新连接到该框来更改我的密码,并立即提示有关安装成功的Java,并卸载旧版本的Java。 这是令人震惊的,因为我们的服务器应用程序是基于Java的,并且当前运行在较旧版本的Java上(这对我们来说很好),卸载旧版Java可能会导致我们的服务器应用程序失败,如果删除了它正在使用的版本! 当然,我拒绝删除旧版本的Java,但是我的同事和我都感到不安,甚至提示我。 如果其他人login不了解我们的Java依赖关系,他们可能会删除旧版本。 我检查了我的Java更新设置,发现它被设置为检查,但在下载之前提示。 (因为我已经禁用,甚至检查。) 我们进一步调查,在事件查看器中发现,在7月20日中午左右,新版本的Java(8更新101)被安装在盒子上,显然我做了它(或用我的用户ID完成)。 然而,我们知道我没有这样做,因为那天我在黄石国家公园度假,没有互联网! 我的用户ID是具有pipe理权限的AD帐户,但名称为“smmccants”,没有共享密码。 我有一个会话在服务器上运行(我通常断开,而不是注销)。 从今天上午(上午10:00点前的7/25/2016)重新连接并与Java对话框交互,我无法在事件查看器中find任何有趣的东西。 我们想要了解发生了什么,并在将来防止它。 任何关于如何自动发生的想法以及我们应该在哪里寻找线索? 以下是我在EventViewer中find的日志。 从事件查看器(来源:MsiInstaller)在7/20/2016 11:59:44上午: 开始Windows安装程序事务:C:\ Users \ smmccants \ AppData \ LocalLow \ Oracle \ Java \ jre1.8.0_101 \ jre1.8.0_101full.msi客户端进程Id:87064 从MsiInstaller在2016年7月20日12:00:29: 产品:Java 8 Update 101 – 安装成功完成 – Windows Installer安装的产品。 产品名称:Java 8 Update 101.产品版本:8.0.1010.13。 产品语言:1033制造商:Oracle Corporation。 安装成功或错误状态:0。 – 结束Windows […]
好的,我是经验丰富的客户端开发人员,现在已经成功地创build了一个服务器端应用程序,使用Java / MongoDB API和NodeJS进行公共html响应。 一切都好,除了疑虑。 我应该如何运行服务器可执行文件? 目前,我正在使用systemd运行mongodb,因此在启动时会自动启动。 然后,我打开screen并使用supervisor程序运行NodeJS应用程序,它会在崩溃时重新启动应用程序。 在新选项卡上,我使用java -jar main/application.jar直接运行Java应用java -jar main/application.jar 现在,我可以分离screen并closuresssh 。 但是 ,我应该将这些可执行文件包装到服务中,还是像我一样运行?
我已经用java 8和mysql服务器部署了我的应用程序。 运行mysqld.exe时需要占用130 MB的内存,并停止增加。 但之后我的应用程序的性能很差。 任何人都可以帮助我找出背后的原因。 哪个因素增加了mysqld.exe的内存大小,以及为什么我的应用程序被数据库困住了。 提前致谢
我通过谷歌计算引擎托pipe一个服务器用于各种目的,最着名的是一个Minecraft服务器,它收到大量的stream量和使用量。 我们所说的CPU使用率相当于150%,每秒读写50次,磁盘每秒钟读取10次,networking数据包每秒钟减less600次,因此使用率相当高。 我遇到的问题是,尽pipe服务器完全能够处理这么多的使用,但是延迟和/或处理仍然存在问题。 有很多地方出于蓝色,一个只需要十分之一秒执行的过程需要40秒甚至更长的时间。 以下是我们已经考虑的可能的问题以及我们已经实施的解决scheme: CPU使用率 我们一直使用100-250%的CPU,4个vCPU(所以我们不应该有任何forms的性能限制)。 磁盘IO 我们最多可以达到每秒80次读取和30次写入,但是使用SSD的持续随机IOPS限制为1.5k,所以这也不成问题。 我们最大读取速度为1.6 MB,每秒写入速度为.75 MB,但是使用的SSD的持续吞吐量限制为24 MB / s。 networking 我们最多可以接收600个数据包(平均400)和每秒发送1700个数据包(平均800)。 我不确定我们如何能够以任何方式改善这一点,但是当networking供应商是Google的时候,我不明白这会是什么问题。 我们收到28 KB,每秒发送280 KB。 我们的networking速度testing显示,我们有能力处理数千次这个值。 最不可能涉及到这一点,因为大部分遇到的问题涉及服务器端的问题。 我们不能通过拆分用户连接来进行任何forms的负载平衡,因为它们必须全部连接到一台托pipeMinecraft世界的服务器。 内存 我们有5 GB的RAM专用于有困难的进程。 这使我怀疑它的参与,因为我们很less使用它的一半以上。 Java的 我们的Minecraft服务器jar是Minecraft,是用Java编写的。 我们正在使用以下Java版本: java version "1.7.0_111" OpenJDK Runtime Environment (IcedTea 2.6.7) (7u111-2.6.7-1~deb8u1) OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode) 我们使用以下参数来执行jar: -server -Xmx5G -Xms5G -Xmn2500M -XX:+UseConcMarkSweepGC -XX:+UseParNewGC […]
我不知道work和temp一般应该由Tomcat来pipe理,还是我应该不时手动清除它? 在我们的具体情况下,应用程序的新版本总是用##符号枚举(例如app##123.war ,下一个是app##124.war )。 所以版本之间的冲突不应该发生。 但是旧版本似乎被Tomcat保存在work/Catalina/localhost 。 另外请注意 – 在我们的例子中 – 大多数重要的应用程序总是一起更新。 有一些工具(如jolokia ),这是在一个单独的过程中更新。 那么从Tomcat的caching目录中手动删除旧的应用程序会有什么显着的性能提升吗? 或者,也许服务器将启动较慢,因为其他应用程序的caching将被删除的过程中?
亲爱, 我们遇到了“太多打开文件”的问题。 我们已经取得了一些进展,但问题仍然存在… 我们在aix的weblogic上使用cxf。 相关的cxfconfiguration: <http-conf:conduit name="*.http-conduit"> <http-conf:client Connection="close" /> </http-conf:conduit> 执行此代码时: for(int i=0;i<1300;i++){ response = callService(request).call(); } (我们不打算在生产中使用此代码,但它是解决问题) – >第一次运行成功; – >第二次运行暴露了这个问题 输出: netstat| wc -l 首先显示太多的套接字保持打开(因此cxfconfiguration更改) 现在开放的套接字保持稳定+ – 400线之前configuration改变> 1000 但… lsof 2> /dev/null|grep TCP|wc -l 揭露了我们目前遇到的问题 打开的套接字的数量是稳定的(所以套接字closures),但打开文件的数量不… 从pipe理服务器启动后的319开始,直到+ -1688时发生以下exception: javax.xml.ws.soap.SOAPFaultException: NullPointerException invoking https://tst-cjcsr.just.fgov.be/cjcs-cg-ws/1.0-rc2/: null at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:158) at com.sun.proxy.$Proxy302.requestCriminalRecord(Unknown Source) at be.fgov.just.cjr.application.dossier.DossierBean$1.call(DossierBean.java:226) at […]
我有一个Centos 6服务器。我已经安装了configuration的一切,所以我的服务器应用程序运行顺利,但是如果有任何意外的重新启动,我必须手动启动SSH会话,并启动运行它的Java程序。 我已经研究了几种启动服务器软件的方法,但是没有一个能够运行该软件。 通常我运行这个命令启动软件:nohup java -jar“/etc/software.exe”-name“testing纽约服务器”。 当我将它添加到一个脚本并从terminal运行时,这个工作正常,但是如果我将它添加到/etc/rc.d/rc.local中,那么这是在其他线程中推荐的。 我发出触摸命令来创build一个testing文件,这些被执行,所以我显然在这个错误的方式。
我们使用nginx作为java应用程序的代理(都在docker容器中,但这可能不相关)。 当我们试图通过rest客户端到达Java应用程序的特定头部时,SM_USER在代理通过中丢失。 奇怪的是:如果我们使用CURL或者PHP Zend Framework或者Firefox rest add-on来做请求,那么proxy passconfiguration就起作用了。 但是,如果我们使用Java Springrest客户端或soapUI,头部会丢失。 如果我们绕过代理它也从Java / soapUI工作。 我们使用下面的nginxconfiguration: server { listen 80; server_name devrest.example.com; root /devrestserver; underscores_in_headers on; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_request_headers on; proxy_pass http://devrest:8080; } } 正如你所看到的,我们使用underscores_in_headers; 并显式设置proxy_pass_request_headers; 在configuration中。 nginx接pipe之前的一个tcpdump显示了SM_USER头到达服务器: GET /resource/RoomType/ HTTP/1.1 Accept: text/plain, application/json, application/*+json, */* Content-Type: […]