富源县住房和城乡建设局网站,惠州网站seo,大学网站建设方案书,网站建设一条龙ue365我们通常处理OutOfMemoryError问题#xff0c;因为堆或permgen大小配置问题。但是所有的JVM内存不是permgen或者heap。据我所知#xff0c;它也可以与Threads / Stacks#xff0c;本地JVM代码相关…但是使用pmap我可以看到进程分配了9.3G这是3.3G堆外内存使用。我不知道什么…我们通常处理OutOfMemoryError问题因为堆或permgen大小配置问题。但是所有的JVM内存不是permgen或者heap。据我所知它也可以与Threads / Stacks本地JVM代码相关…但是使用pmap我可以看到进程分配了9.3G这是3.3G堆外内存使用。我不知道什么是监视和调整这种额外的堆外内存消耗的可能性。我不使用直接的离堆内存访问(MaxDirectMemorySize是64m默认)Context: Load testingApplication: Solr/Lucene serverOS: UbuntuThread count: 700Virtualization: vSphere (run by us, no external hosting)JVMjava version 1.7.0_09Java(TM) SE Runtime Environment (build 1.7.0_09-b05)Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)Tunning-Xms6g-Xms6g-XX:MaxPermSize128m-XX:-UseGCOverheadLimit-XX:UseConcMarkSweepGC-XX:UseParNewGC-XX:CMSClassUnloadingEnabled-XX:OptimizeStringConcat-XX:UseCompressedStrings-XX:UseStringCache内存映射vmstatprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----r b swpd free buff cache si so bi bo in cs us sy id wa1 0 1743 381 4 1150 1 1 60 92 2 0 1 0 99 0自由total used free shared buffers cachedMem: 7986 7605 381 0 4 1150-/ buffers/cache: 6449 1536Swap: 4091 1743 2348最佳top - 11:15:49 up 42 days, 1:34, 2 users, load average: 1.44, 2.11, 2.46Tasks: 104 total, 1 running, 103 sleeping, 0 stopped, 0 zombieCpu(s): 0.5%us, 0.2%sy, 0.0%ni, 98.9%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%stMem: 8178412k total, 7773356k used, 405056k free, 4200k buffersSwap: 4190204k total, 1796368k used, 2393836k free, 1179380k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND17833 jmxtrans 20 0 2458m 145m 2488 S 1 1.8 206:56.06 java1237 logstash 20 0 2503m 142m 2468 S 1 1.8 354:23.19 java11348 tomcat 20 0 9184m 5.6g 2808 S 1 71.3 642:25.41 java1 root 20 0 24324 1188 656 S 0 0.0 0:01.52 init2 root 20 0 0 0 0 S 0 0.0 0:00.26 kthreadd...df – tmpfsFilesystem 1K-blocks Used Available Use% Mounted ontmpfs 1635684 272 1635412 1% /run我们的主要问题服务器有8G的物理内存 Solr的堆只有6G有1.5G的交换 Swappiness 0堆消耗似乎适当调整在服务器上运行只有Solr和一些监视的东西我们有一个正确的平均响应时间我们有时会有长时间停顿长达20秒我想暂停可能是一个完整的GC上交换堆右为什么有这么多的互换我甚至不知道这是否是使服务器交换的JVM或者如果它是隐藏的我看不到的东西。也许操作系统页面缓存但不知道为什么操作系统将创建页面缓存条目如果创建交换。我正在考虑测试mlockall技巧用于一些流行的基于Java的存储/ NoSQL像ElasticSearchVoldemort或Cassandracheck Make JVM/Solr not swap, using mlockall编辑在这里你可以看到最大堆使用堆(蓝色)使用的交换(红色)。它似乎是相关的。我可以看到与Graphite有很多ParNew GC定期发生。而且有一些CMS GC对应于堆图像的显着减少。暂停似乎不与堆减少相关但是在10:00和11:30之间有规律地分布因此它可能与ParNew GC有关。在负载测试期间我可以看到一些光盘活动以及一些交换IO活动这是真的平静的当测试结束。