我需要设置一个webapp运行在一定数量的核心上,或者全部在服务器上(取决于configuration)。 webapp将运行在以下任一应用程序服务器上。 Apache Tomcat Weblogic webspere 7.0 or higher Jboss 4 or higher
我有一个服务器,让我头痛。 它拥有几个网站:这些都是基于PHP或基于Java。 我有一个设置,使用Apache2 + suPhp的PHP网站,和apache2 +的mod_proxy + Apache的Tomcat的Java应用程序。 在过去的几个星期里我看到一些奇怪的行为。 有时,我会得到一个单一的httpd进程,达到30-40%cpu,超过70%的内存。 我没有看到任何PHP或Java进程占用额外的资源,所以我(天真地)认为这个问题是不相关的PHP或Java代码。 这些高峰似乎随机发生在随机的时间和随机的时间间隔; 有时每天多次,其他时间整整一周都没有发生。 我注意到的另一个奇怪的事情是,当我手动kill -9正在执行的httpd进程时,另一个httpd进程会在几秒钟内popup,并开始占用大量的内存和CPU。 我可以重复几次,直到它自己停止发生:/ 所以,我其实有几个问题: 有没有人有任何提示,我应该如何追查这种行为的原因? 最终,我想看看是什么样的请求导致这些问题。 我已经看了httpd访问和错误日志,我真的找不到任何不寻常的东西。 我对这类问题的研究并不熟悉,所以即使对您来说看起来非常明显的事情也可以提供帮助。 有没有办法限制一个单一的httpdsubprocess可能消耗的资源量? 或只是简单地杀了它,当它超过了一定的内存量? 与上一个问题相关,我可以configurationoom-daemon在httpd进程上触发更多,而在其他进程上更less? 我问,因为,直到我find一个体面的解决scheme,我想确保它停止杀死我的java进程时,httpd进程再次开始行动。 UPDATE 最近我发现,造成这个烂摊子的请求来自googlebot。 这是消耗所有可用的mem和cpu的进程的lsof输出摘录: httpd 18588 nobody 37u IPv6 96675092 TCP myhost.com:http->crawl-66-249-76-96.googlebot.com:56730 (ESTABLISHED) 我设置了mod_security来logging来自我的<VirtualHost>中googlebots似乎使用的IP范围的所有来自这个规则的请求: SecRule REMOTE_ADDR "@ipMatch 66.249.76.0/24" phase:1,id:1,auditlog,allow 我这样离开了服务器一段时间。 在这段时间内,httpd进程被刺激了好几次,到了OOM守护进程开始查杀进程(httpd,java,甚至现在不时地closuresmysql)的程度。 然后,我提取了所有被googlebot击中的url,并创build了一个curl所有这些url的脚本,希望能够使httpd进程飙升,从而find导致这些问题的请求。 不幸的是,这并没有发生 – 所有的请求都很快返回,而cpu和内存使用情况远不及Googlebot访问服务器时的情况。 所以我认为有两种可能性: 问题是由于特定的HTTP标头。 我的脚本不复制这些,它只是使用普通的curl,没有额外的标题。 导致问题的请求不会被logging。 据我所知,这不应该是这种情况,因为我告诉mod_securitylogging第一阶段,这是在Apache实际上处理请求之前的请求。 有没有人有任何其他的想法? […]
红帽似乎是一个非常不便的Java环境。 在Debian和Gentoo等其他发行版本中,已经有多年的系统configuration工具。 在red hat上,标准仓库中似乎没有任何东西可用,而oracle jdk的安装程序不会写符号链接或replacePATH条目,它似乎只是解压缩。 也许我是无知的,因为我没有冒充5kauthentication课程。
我们有一个Java应用程序,我们写了这些代码的最后部分 Runtime runtime = Runtime.getRuntime(); long memory = runtime.totalMemory() – runtime.freeMemory(); System.out.println("\n\nUsed memory is bytes: " + memory); 我们注意到,随着时间的推移,顶部显示应用程序的内存(%)列增加,但Java内存(从运行时variables)值显示上下波动? 那么,我们应该遵循哪一个来确定确切的内存使用? 我的意图是确定我的应用程序中是否有任何内存泄漏?
我们有一个Java应用程序驻留在机器上。 从我们的Windows机器,我们计划连接到应用程序。 我们启用了jstatd并确认正在运行。 现在的问题是可视化虚拟机永远看不到应用程序分析? 任何帮助吗?
我有一个MySQL表命名库存监测网站的发票,invoice_number是bigint(19)AUTO_INCREMENT字段。 目前AUTO_INCREMENT的值是1。 客户希望它从50000开始invoice_number。通过以下脚本重置ALTER TABLE INVOICES AUTO_INCREMENT = 50000; 当我写一个插入脚本来插入数据在SQLDBX,它是把50000的invoice_number。但是,当我试图插入使用应用程序(Web应用程序)的logging,invoice_number值从1开始。我们正在使用Spring-JDBC模板将数据插入到mysql数据库中。
我正在使用由以下命令启动的服务器。 mvn jetty:run 我想停止服务器,但我没有运行mvndocker:停止,甚至faild运行java -version,为什么? [mirror@home wpse]$ mvn jetty:stop ///////////// Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. [mirror@home wpse]$ java ////////////// Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual […]
我有几个想法如何解决这个问题,但有一个关于jboss集群的问题。 请记住,这些应用程序写得很差,这就是为什么他们需要这么多的记忆,我现在没有办法做到这一点。 所以,我已经在Jboss上集成了应用程序,其应用程序足够小,可以在一个盒子上运行。 这意味着一台机器可以处理负载。 但是,目前的问题是,我被要求在同一个环境中运行多个系统。 我们的机器是虚拟的,由于硬件有限,所以限制在8GB内存,这使得jboss大概有7GB的空间。 不幸的是,这还不足以运行这组应用程序。 我不断得到堆错误和崩溃。 如果我将2个或3个jboss实例集中在一起,可以运行消耗比单个盒子可以处理更多资源的应用程序吗?
我写了一个简单的工具上传日志到HDFS。 我发现了一些奇怪的现象。 如果我在前台运行该工具,并用“Ctrl-C”closures它,HDFS中会有一些数据。 如果我在后台运行该工具并使用“ kill -KILL pid ”杀死进程,则数据已经被处理丢失,并在HDFS中留下一个空文件。 我的工具试图通过频繁(每1000行)调用SequenceFile.Writer.syncFs()来进行同步。 而我只是不知道为什么数据丢失。 如果我的工具整天运行,但是机器突然崩溃,所有的数据都会丢失吗? 我的工具用于收集来自不同服务器的日志,然后上传到HDFS(每天将所有日志聚合到单个文件)。
我们将Blue Martini Commerce应用程序(仅在WebLogic 10.3.0上支持)迁移到新的主机(在VMWare ESX vm上的Redhat 6.3)。 我们看到我们的托pipe服务器的启动时间非常慢,基本上比我们当前的产品慢了20倍。 例如,Publishpipe理的服务器在当前的生产中花费约30-45秒,而在新的环境中花费约10分钟。 该设置使用与当前生产环境相同的域结构和JVM。 使用相同的设置文件。 我们在64位架构上使用jdk1.6.0_33。 我们使用通用的64位weblogic安装程序,并使用pack / unpack实用程序来迁移域。 启动这个服务器的JAVA_OPTS是:“-d64 -Xms256m -Xmx512m -XX:PermSize = 48m -XX:MaxPermSize = 256m” 系统pipe理员已经检查了/etc/sysctl.conf和/etc/limits.conf以确保我们没有遇到某种进程限制。 由于我不确定这个托pipe服务器在启动阶段从Blue Martini的angular度做了什么,所以我也进行了DBA检查,以确保Oracle RAC(11.2.0.3)没有触及某种过程限制,或者如果有一个tns听众的问题。 新的主机是相当严格的,他们的服务器locking,所以有一些差异…. Redhat 6.3在新的环境下,RH 5.7在当前 目前,SElinux是针对新env和禁用的 新env中的VM和当前的专用硬件 iptables在当前禁用。 它在新产品启用,但我让他们禁用它,以防万一 我很抱歉没有更具体。 我主要希望得到一些提示。 我没有在这种环境下通常拥有的典型的根访问权限。 我只是希望有一个前进的道路。 我做了一些“杀-3”,看看是否有阻塞的线程,我有nadda。 该服务工作的所有意图和目的,这只是痛苦的缓慢。 感谢大家提前阅读和最好的问候。 涉