在生产 Java 服务器中打开 GC 日志记录是常见做法吗?

2024-02-15

我在一些地方 [1] 看到人们在生产服务器(关键任务)中启动 GC 日志记录,例如

java -server -Xms1024m -Xmx1024m -XX:NewSize=256m \
     -XX:MaxNewSize=256m \
     -XX:+UseConcMarkSweepGC \
     -XX:CMSInitiatingOccupancyFraction=70
     -XX:+PrintGCDetails \
     -XX:+PrintGCDateStamps \
     -XX:+PrintTenuringDistribution \
     -Xloggc:logs/gc.log \
     -Djava.awt.headless=true
     -Dcom.sun.management.jmxremote -classpath ...

现在生产环境中是否有推荐的做法?

Update:我添加了来自 Oracle 的链接 [2],还建议监视生产服务器上的 GC。

Sources:

[1] https://serverfault.com/questions/121490/java-opts-xxprintgcdetails-affect-on-performance https://serverfault.com/questions/121490/java-opts-xxprintgcdetails-affect-on-performance

[2] http://docs.oracle.com/cd/E24290_01/coh.371/e22838/deploy_checklist.htm#CHHFADDF http://docs.oracle.com/cd/E24290_01/coh.371/e22838/deploy_checklist.htm#CHHFADDF


Yes,这是一种常见的做法。这是经常强烈推荐我在下面给出了例子和参考。

为什么 GC 日志记录对于生产 Java 服务器有好处:

  1. 最小的开销- GC 日志记录有一个最小的开销到整体系统性能。

    • 这是声称的,例如作者:Charlie Hunt,前 JVM 性能架构师,《Java 性能书籍 https://rads.stackoverflow.com/amzn/click/com/0137142528.
    • all the 世界纪录 SPEC 基准 http://www.spec.org/jEnterprise2010/results/jEnterprise2010.html运行 Java Enterprise 软件正在运行启用了 GC 日志记录的生产服务器。这证实了日志记录的开销较低,并且发布基准结果的性能专家对日志记录路径进行了高度调整。
  2. 长期记录绝对是至关重要的分析应用性能。必须始终启用 GC 日志记录,以便管理员能够观察 GC 行为并相应地调整应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在生产 Java 服务器中打开 GC 日志记录是常见做法吗? 的相关文章

  • 协助持续进行 Java 到 C# 转换的工具

    如今 许多项目都是用 Java 编写的 其中一些最终转换为 C 以合并到 NET 中 我想到的例子有 log4net nhibernate 和 db4o 包括 Sharpen db4o 的工具 在内 您是否见过和 或使用过任何使连续转换变得
  • Powermockito 可以在非最终具体类中模拟最终方法吗?

    假设我有一个非最终具体类 具有如下所示的最终方法 public class ABC public final String myMethod return test test 可以嘲笑吗myMethod 调用时返回其他内容junit usi
  • jUnit 中每个 @Test 的不同拆卸

    有没有办法为 jUnit 中的每个 Test 定义不同的拆卸 Use the After注释来指示每个之后要运行的方法 Test 像这样的全套注释是 BeforeClass 首先 Tests are run Before 在每个之前 Tes
  • 无法获取未知属性“运行时”Gradle 7.0

    我最近切换到 gradle 7 0 现在无法构建我的项目 jar 并出现错误 无法获取 org gradle api internal artifacts configurations DefaultConfigurationContain
  • Java 将 String[] 转换为 int[]

    我有一个 String 其中每个元素都可以转换为整数 将其转换为 int 的最佳方法是什么 int StringArrayToIntArray String s public static int StringArrToIntArr Str
  • 在 IIS 中运行 Java Web 应用程序

    有人找到了在 IIS 中运行 Java Web 应用程序的方法吗 在我看来 编写一个将 Jetty 或自定义 servlet 容器与 IIS 集成的 ISAPI 插件 这个词正确吗 应该是完全可能的 这样做的好处是 许多优秀的高端 Java
  • 检查 jar 是否从 shell 运行

    我有一个 java jar 程序 我试图在我的机器启动时运行它 理想情况下 shell 脚本将每 60 秒检查一次以确保 jar 正在运行 我如何检查 jar 是否在 centos 上运行 这似乎不起作用 我当前的 sh 文件 bin ba
  • 为什么ArrayList没有getSize()而不是size()?

    我在一些 JSP 页面中大量使用 ArrayList 我想像这样访问 ArrayList myArrayList size 但由于对象必须符合 JavaBean 标准 其中myArrayList getMyPropertyName is m
  • 使用 spring mvc 的多个域

    假设我有一个应用程序必须缩短 URL 但还要执行其他操作 喜欢google com and goo gl or facebook com and fb me 部署两个应用程序很容易 但 目前 仅部署一个应用程序更简单 使用 spring 和
  • 如何修复 java.lang.ClassNotFoundException: org.springframework.boot.configurationprocessor.json.JSONException 错误?

    当我在生产环境中将 Spring Boot 服务作为 Windows 服务运行时 出现以下错误 服务exe的创建者是Jar2exe https www jar2exe com java lang reflect InvocationTarg
  • 如何删除 Spring 的 RestTemplate 添加的某些 HTTP 标头?

    我在远程服务方面遇到问题 我无法控制对使用 Spring 的 RestTemplate 发送的请求进行 HTTP 400 响应 使用发送的请求curl但被接受了 所以我将它们与通过 RestTemplate 发送的内容进行了比较 特别是 S
  • 选择活动时运行时崩溃

    首先我想说我几乎没有 Android 经验 这是我在 Android 中的第一个项目 而且我的老师不太擅长教学 所以我对任何过度的无知表示歉意 在进一步讨论之前先解释一下 我的应用程序的目标本质上是能够记录您在某些活动上花费了多少时间 记录
  • 从 Spring 启动运行 Java 类

    我使用的是Java8和Spring4 3 1 我有一个 Java Spring 应用程序托管由浏览器和移动应用程序客户端访问的 RESTfult 服务 其次 我编写了一个侦听事件的聊天服务器 socket io 来自客户 该聊天服务器正在从
  • 如何列出所有已加载的 Spring bean 定义文件

    在大型企业系统中 并不总是清楚在 ApplicationContext 构建期间导入了哪些文件 有没有办法列出过程中加载的所有文件 我知道如何列出加载的属性文件 但不知道导入的 bean 文件 更新示例 文件 1 applicationCo
  • 访问 JAR 资源

    我有一个jar包含我想要分发的资源 主要是缓存 日志记录等配置 的文件 我对这些资源的相对路径有问题 所以我做了我在另一个 stackoverflow 问题中发现的问题 该问题说这是一种有效的方法 ClassInTheSamePackage
  • 使用用户名和密码登录 LinkedIn 失败

    LinkedIn使用oauth登录其api 服务器中无法登录api 我尝试使用http请求登录linkedin并获取oauth verifier 但我得到了这样的回应 很抱歉 出现了问题 你的申请 请确保您 启用cookie并重试 或点击此
  • 无法读取使用 DataOutputStream 发送的号码

    这是我的客户端代码 Random rand new Random int n rand nextInt 50 1 DataInputStream dis new DataInputStream socket getInputStream D
  • 找不到满足版本限制的“com.google.code.findbugs:jsr305”版本

    当生成签名的 APK 进行发布时 我收到此错误消息 Cannot find a version of com google code findbugs jsr305 that satisfies the version constraint
  • 为什么我得到:没有有效的 JFX 运行时

    我有一个使用 java 1 6 编译并使用 jnlp webstart 运行的现有应用程序 如果我使用 JRE 1 6 从客户端运行此应用程序 一切都会很好 但是 当我使用 java JDK 7 编译代码并使用 JRE 1 7 67 运行客
  • 如何在 Hibernate 中使用 SELECT 进行 INSERT

    我需要在休眠中实现以下请求 insert into my table max column values select max id from special table where 如何在休眠中使用注释来做到这一点 Special tab

随机推荐

  • “静态常量”与“#define”

    是不是比较好用static const变量比 define预处理器 或者这可能取决于上下文 每种方法的优点 缺点是什么 之间的优缺点 defines consts 和 你忘记了什么 enums 取决于用途 enums 仅适用于整数值 适当的
  • 返回实现相同接口的不同泛型

    考虑到有一个方法 static IEnumerable
  • 类中未定义/未初始化的默认值

    假设您有这样的课程 class A public A A double val m val val A private double m val 创建 A 的实例后 如何检查 m val 是否已初始化 定义 换句话说 有没有办法知道 m v
  • 执行正则表达式替换 Perl

    假设我有IP10 23 233 34我想简单地交换233 for 234 第一个 第二个和最后一个八位字节未知 第三个八位位组是233 or 234 我想要进行替换 使其与 IP 子项相匹配 并保留其他所有内容 同时仍然切换最后一个八位字节
  • 对于 Perl GUI,我应该使用 Perl/Tk、Tcl::Tk 还是 Tkx?

    我很喜欢Perl Tk 但我认为这是 DOA 我认为Tcl Tk and Tkx是更好的解决方案 假设我掉落Perl Tk 是 最受支持 的路线Tcl Tk 自 2007 年以来就没有更新过 而且似乎无法联系到其作者 或者Tkx 其中任何一
  • 在 Rails 表单中使用 textarea 助手

    为什么此代码在文本区域显示错误 The FormHelper方法是text area http api rubyonrails org classes ActionView Helpers FormHelper html method i
  • System.Web.Caching 还是 System.Runtime.Caching 对于 .NET 4 Web 应用程序来说更可取

    我正在向 ASP NET Web 应用程序添加缓存 这是 NET 4 因此我可以使用 System Runtime Caching 命名空间中的类 据我所知 添加该命名空间是为了提供与 System Web Caching 中的功能类似的功
  • JPA 标准 API。使用带参数的 sql 函数调用进行查询

    我正在尝试使用 Criteria typesafe API 构建此查询 select from xxx table xxx where CALC DISTANCE xxx latitude xxx longitude lat lng lt
  • PHP 标头在新窗口中重定向?

    对于横幅管理系统 我使用 header Location http www awebsite com 重定向到正确的网站 是否可以强制此标头脚本在新窗口中打开 a href yourbannerscript php target blank
  • 最好的 iPhone 游戏,有可供初学者学习的源代码

    您会推荐初学者学习的最好的带有源代码的 iPhone 游戏是什么 不确定它是否是最好的 但 iOS 上的一款著名游戏刚刚开源 Canabalt https github com ericjohnson canabalt ios https
  • 是否有一个 Python 库可以在提供邮政编码时返回城市?

    因此 我的数据框中有邮政编码 我想在其中构造另一列 其中包含根据邮政编码的城市名称 如果我也可以提取其他信息 例如状态 那就太好了 目前我只需要德国这样做 但在不久的将来其他欧洲国家也需要这样做 我找到了一些可能的解决方案 但它们似乎仅适用
  • 为什么 Alert 函数的执行速度比 javascript 中的任何其他函数都快?

    据我所知 代码执行是从上到下开始的 在下列情况下 为什么alert 函数的执行速度比之前找到的代码行要快 Case 1 Alert 比console log console log Why was I executed last alert
  • 在 JTextFIeld 中隐藏/显示密码 (Java Swing)

    因此 我一直在研究密码强度检查器 它的工作方式是用户在文本字段中输入一些随机文本 然后显示即时视觉反馈 点的细分 我还添加了一个复选框 选中该复选框后 应隐藏密码 即用星号替换所有字符 同时保留用户输入的实际文本 文档侦听器用于跟踪文本字段
  • 替换MySQL中的所有字段

    我需要使用以下命令替换表列中的一些字符REPLACE命令 我知道REPLACE命令需要列名 然后是要更改的文本 在以下示例中为 a 字符 和新文本 在以下示例中为 e 字符 UPDATE my table SET my column REP
  • 动态捕获 CPU 和内存使用情况

    我正在运行 shell 脚本来执行 C 应用程序 该应用程序测量 api 的性能 我可以捕获 API 的延迟 返回给定参数集的值所需的时间 但我也希望以 5 10 秒的间隔捕获 CPU 和内存使用情况 有没有一种方法可以做到这一点 而又不会
  • 如何与其他进程共享现有的 char * ?

    我正在尝试使用其他分叉 执行的进程共享一些内存shmget and shmat char test test int shID char shptr key t shkey 2404 shID shmget shkey sizeof cha
  • PAnsiChar 和 PChar 的区别

    PAnsiChar 和 PChar 之间有区别吗 是什么类型 德尔福2007年之前 先感谢您 D2009 及之后 是的 有 PChar是一个指向 a 的指针Char这是一个 unicode 字符 aWideChar And PAnsiCha
  • 如何启用 PostgreSQL 函数分析器?

    这花了我一段时间才弄清楚 几周前我在一个外语维基上找到了答案 它非常有帮助 所以我想我会分享 在 Win32 上的 PostgreSQL 8 3 上 默认情况下会安装分析插件 但不会加载 只需执行以下 SQL LOAD libdir plu
  • 如何设计轮播点样式?

    我如何将我的旋转木马点设计成这样 这是我现在所拥有的 这是我的风格 slick dots position absolute bottom 45px list style none display block text align cent
  • 在生产 Java 服务器中打开 GC 日志记录是常见做法吗?

    我在一些地方 1 看到人们在生产服务器 关键任务 中启动 GC 日志记录 例如 java server Xms1024m Xmx1024m XX NewSize 256m XX MaxNewSize 256m XX UseConcMarkS