jjzjj

java - G1 垃圾收集器 : Why survivor space is always full?

这是jmap-heap命令的输出:SurvivorSpace:regions=52capacity=54525952(52.0MB)used=54525952(52.0MB)free=0(0.0MB)100.0%used我已经执行了很多次,我发现capacity的值总是等于used。我的问题是为什么幸存者空间总是满的(而且这么小)?我指定了-Xmx2200m-Xms2200m-Xmn1100m。(我预计survivorspace应该是220M,也就是说survivorregion应该有更多的空间)--更新--jheap的完整输出:Garbage-First(G1)GCwith2thre

java - 如何理解Full GC日志?

我目前在PROD中看到以下内容:5429.779:[FullGC[PSYoungGen:13809K->0K(505216K)][PSOldGen:253802K->245481K(319488K)]267612K->245481K(824704K)[PSPermGen:70059K->70059K(118784K)],0.5869143secs][Times:user=0.59sys=0.00,real=0.59secs]我理解A->B(C)的意思是:A,gc之前,B之后gc,Cheapwithouttenuredandperm我不明白的是一block(在所有[]之外)是267612

SignalR性能计数器 + Azure VM + Full IIS + Windows Server 2012

真的遇到了这个问题。我在使用Linux的RedisBackplane上运行的AzureVMFULII上有一个SignalR测试线束应用程序。该应用程序在本地的预期工作。我可以连接到运行Redis服务器的Linux节点。性能计数器显示每秒收到的消息。但是,当我将应用程序加载到AzureVM上时,该应用程序仍然连接到RedisBackplane,但性能计数器接收或发布的消息以零为零。我登录了Linux节点,并检查了Redis服务器正在接收消息,但性能计数器在AzureVM上显示为零...有任何想法吗?看答案不幸的是,似乎我们无法添加性能计数器来收集性能数据。也许我们可以使用OMS/日志分析,这可以

java - G1 : What are the differences between mixed gc and full gc?

对于垃圾优先收集器,younggc意味着仅在年轻代执行gc,mixedgc将同时清理年轻代和老年代。那么什么是fullgc?为什么它比mixedgc持续时间更长?我进行了一些搜索,但没有找到任何解释fullgc的帖子。 最佳答案 来自甲骨文G1GCblog和technetworkarticle年轻的GC:YoungGC的集合仅包含年轻/幸存者区域。混合GC:MixedGC的收集集既包括年轻/幸存者区域,也包括老区域。巨大的对象和巨大的分配对于G1GC,任何超过区域大小一半的对象都被视为“Humongousobject”。这样的对象在

java - 在 full GC 之前获得预先警告

对于不应暂停超过200毫秒的软实时系统的上下文,我们正在寻找一种方法来在FullGC即将到来之前发出预先警告。我们意识到我们可能无法避免它,但我们希望在系统停止之前故障转移到另一个节点。我们已经能够想出一个方案,在即将到来的完整GC可能导致系统停顿几秒钟(我们需要避免)之前为我们提供预先警告。我们能够得出的结果依赖于CMS空闲列表统计信息:-XX:PrintFLSStatistics=1。这会在每个GC周期后将空闲列表统计信息打印到GC日志中,包括年轻的GC,因此信息在较短的时间间隔内可用,并且在内存分配率较高的时间间隔内会更频繁地出现。就性能而言,它可能会付出一点代价,但我们的工作假

javax.ws.rs.NotFoundException : Could not find resource for full path

环境Windows7(64)jdk1.7.0_51(64)RESTEasy3.0.7apache-tomcat-7.0.50ProjectName:helloRESTEasyHelloWorldService.java:packagecom.javacodegeeks.enterprise.rest.resteasy;importjavax.ws.rs.GET;importjavax.ws.rs.Path;importjavax.ws.rs.PathParam;importjavax.ws.rs.Produces;importjavax.ws.rs.core.MediaType;@Pa

Java CMS 被忽略,取而代之的是 Full GC

我正在运行一个使用CMS作为终身收集器的Java服务器。在负载测试下运行,我大约每1秒看到一次年轻Collection,大约每5米看到一次永久(并发)。这很好。当我以大约1/2容量的实际流量运行时,我大约每4秒收集一次年轻集合,大约每7米收集一次终身收集(!并行,停止世界!)。为什么JVM决定进行完全停止世界收集而不是使用CMS收集器?从gc.log中,您可以看到“FullGC”正在运行,并且需要3秒才能完成。这里没有并发模式故障。没有明确请求集合。1350.596:[GC1350.596:[ParNewDesiredsurvivorsize119275520bytes,newthre

java - 是否可以同时使用 TextStyle.SHORT 和 TextStyle.FULL 解析当月的日期?

Java8DateTimeFormatter从类似d的模式创建。MMMu只能解析以TextStyle.SHORT(例如13.Feb2015)定义的样式书写的月份日期,这是一个从d创建的DateTimeFormatter。MMMMu只能解析以TextStyle.FULL定义的样式书写的带有月份的日期(例如13.February2015)。在“旧”的SimpleDateFormat中,“MMM”和“MMMM”之间的区别只对格式化很重要,对解析不重要,因此很容易创建一个解析器来理解月份的完整和简短形式名字。是否可以创建一个也可以执行此操作的Java8DateTimeFormatter?或者我

java - 登录logback时如何处理disk full错误?

我正在使用slf4j+logback登录我们的应用程序。早些时候我们使用的是jcl+log4j,最近搬家了。由于我们应用中的日志量很大,在生产环境中有可能磁盘已满。在这种情况下,我们需要停止日志记录,应用程序应该可以正常工作。我从网上发现,我们需要轮询logbackStatusManager以查找此类错误。但这将为应用程序添加对logback的依赖。对于log4j,我发现我们可以创建一个Appender,它可以在这种情况下停止记录。这将再次导致应用程序依赖于log4j。有没有办法只使用slf4j来配置它,或者有任何其他机制来处理这个问题? 最佳答案

Java WebSockets : The remote endpoint was in state [TEXT_FULL_WRITING]

我正在尝试实现一些基于websockets的应用程序,它将与JS客户端进行非常密集的通信。发送消息的代码非常原始:synchronized(session){if(session.isOpen()){session.getBasicRemote().sendText(message);}}对于罕见的发送它工作得很好,但是当少数线程试图通过同一个session(套接字)发送一些消息时,会抛出下一个异常(请注意这不是多线程问题,因为代码块是由session同步的):java.lang.IllegalStateException:Theremoteendpointwasinstate[TEX