当前位置: 首页 > 知识库问答 >
问题:

自动删除旋转的gc.log文件

韦修文
2023-03-14

我们有Hadoop集群版本2.6.4,而指标收集器安装在我们的一台Linux服务器上

root@master02 ambari-metrics-collector]#  rpm -qa | grep metrics-collector
ambari-metrics-collector-2.6.1.0-143.x86_64

在/var/log/ambari-metrics-collector下,我们有去年7月的gc.log文件,我们希望自动删除循环的gc.log文件

[root@master02 ambari-metrics-collector]# ls -ltr | grep gc.log | grep -v collector| more
-rw-r--r--. 1 ams  hadoop      1430 Jul 13  2017 gc.log-201707131628
-rw-r--r--  1 ams  hadoop 178518767 Aug 28  2017 gc.log-201707160637
-rw-r--r--  1 ams  hadoop 128748829 Sep 17  2017 gc.log-201708280731
-rw-r--r--  1 ams  hadoop     60849 Sep 18  2017 gc.log-201709181421
-rw-r--r--  1 ams  hadoop     82562 Sep 18  2017 gc.log-201709181424
-rw-r--r--  1 ams  hadoop 164381669 Oct 19  2017 gc.log-201709181508
-rw-r--r--  1 ams  hadoop     46149 Oct 19  2017 gc.log-201710191738
-rw-r--r--  1 ams  hadoop  13763796 Oct 23  2017 gc.log-201710200633
-rw-r--r--  1 ams  hadoop   1048289 Oct 23  2017 gc.log-201710231021
-rw-r--r--  1 ams  hadoop   3473874 Oct 24  2017 gc.log-201710231649
-rw-r--r--  1 ams  hadoop 137289030 Nov 15  2017 gc.log-201710241352
-rw-r--r--  1 ams  hadoop   8037548 Nov 16  2017 gc.log-201711151355
-rw-r--r--  1 ams  hadoop  23919164 Nov 19  2017 gc.log-201711161246
-rw-r--r--  1 ams  hadoop 139759594 Dec  6 16:35 gc.log-201711191241
-rw-r--r--  1 ams  hadoop 184118442 Dec 25 16:13 gc.log-201712061635
-rw-r--r--  1 ams  hadoop      1440 Jan  1 04:38 gc.log-201712251613
-rw-r--r--  1 ams  hadoop      1437 Jan 10 00:03 gc.log-201801021532
-rw-r--r--  1 ams  hadoop      1439 Jan 10 01:04 gc.log-201801100004
-rw-r--r--  1 ams  hadoop      3637 Jan 10 01:11 gc.log-201801100105
-rw-r--r--  1 ams  hadoop      1437 Jan 10 01:16 gc.log-201801100113
-rw-r--r--  1 ams  hadoop      3636 Jan 10 01:24 gc.log-201801100118
-rw-r--r--  1 ams  hadoop      1438 Jan 10 01:35 gc.log-201801100126
-rw-r--r--  1 ams  hadoop      1438 Jan 10 01:42 gc.log-201801100137
-rw-r--r--  1 ams  hadoop      1436 Jan 10 02:14 gc.log-201801100144
-rw-r--r--  1 ams  hadoop      8353 Jan 10 02:19 gc.log-201801100216
-rw-r--r--  1 ams  hadoop      1437 Jan 11 09:08 gc.log-201801110730
-rw-r--r--  1 ams  hadoop      1436 Jan 11 09:19 gc.log-201801110909
-rw-r--r--  1 ams  hadoop       766 Jan 11 09:20 gc.log-201801110920
-rw-r--r--  1 ams  hadoop       765 Jan 11 09:26 gc.log-201801110926

从ambari gui中的Advanced ams-hbase-env中,我们看到以下内容:

{% if java_version < 8 %}
export HBASE_MASTER_OPTS=" -XX:PermSize=64m -XX:MaxPermSize={{hbase_master_maxperm_size}} -Xms{{hbase_heapsize}} -Xmx{{hbase_heapsize}} -Xmn{{hbase_master_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly"
export HBASE_REGIONSERVER_OPTS="-XX:MaxPermSize=128m -Xmn{{regionserver_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -Xms{{regionserver_heapsize}} -Xmx{{regionserver_heapsize}}"
{% else %}
export HBASE_MASTER_OPTS=" -Xms{{hbase_heapsize}} -Xmx{{hbase_heapsize}} -Xmn{{hbase_master_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly"
export HBASE_REGIONSERVER_OPTS=" -Xmn{{regionserver_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -Xms{{regionserver_heapsize}} -Xmx{{regionserver_heapsize}}"
{% endif %}

我们尝试在HBASE_MASTER_OPTS或HBASE_REGIONSERVER_OPTS设置-
XX:NumberOfGClogFiles=10,以便只获得10个gc.log文件,但指标收集器无法启动,似乎是因为语法不正确

reference-http://www . Oracle . com/tech network/Java/VM options-JSP-140102 . html

export HBASE_MASTER_OPTS=" -XX:PermSize=64m -XX:MaxPermSize={{hbase_master_maxperm_size}} -Xms{{hbase_heapsize}} -Xmx{{hbase_heapsize}} -Xmn{{hbase_master_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:NumberOfGClogFiles=1"

请建议如何自动删除循环的gc.log文件

共有1个答案

咸星波
2023-03-14

当我们想要进行GC日志循环时,我们必须定义一些属性来使其正常工作,比如使用"-Xloggc "选项。

-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=2M

需要定义 NumberOfGClogFiles 选项将导致 JVM 选项不一致,并且 JVM 将无法像以下方式启动:

所以我试着这样做:

HBASE_MASTER_OPTS=" -XX:PermSize=64m -XX:MaxPermSize={{hbase_master_maxperm_size}} -Xms{{hbase_heapsize}} -Xmx{{hbase_heapsize}} -Xmn{{hbase_master_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=3 -XX:GCLogFileSize=20M" 
.

注意:同样在我的情况下,JVM没有启动,因为我的情况“-XX:NumberOfGClogFiles”(这里我使用了小写日志)有一个拼写错误,而正确的选项在“-XX:NumberOfGCLogFiles”等选项中有大写L。

 类似资料:
  • 使地球自动旋转,并控制旋转速率。地球的自动旋转功能在默认情况下是关闭的,如果启动旋转功能,默认的旋转速率是1。 // 启用自动旋转功能,将转速设置为1(同时1也是默认的转速) controller.setAutoRotation( true, 1 ); // 如果之前开启了自动旋转功能,可以用这种方式将其关闭 controller.setAutoRotation( false );

  • iOS 13/13.1自动旋转的行为似乎与iOS 12不同。例如,“我的应用”允许用户在设置中将界面方向锁定为纵向或横向模式。 > 如果我在设备上有纵向旋转锁定并返回。横向在supportedInterfaceOrientations中,界面保持纵向模式,直到我在设备上禁用纵向锁定方向。iOS 12似乎并非如此。事实上,在iOS 13中甚至没有调用supportedInterfaceOrienta

  • 我正在开发一款ios应用程序,它必须在横向和纵向两种模式下都能工作,但有一种视图应该始终在横向模式下。因此,我有: 如果我在横向模式下使用我的应用程序,并到达此视图并旋转设备(iPad),则调用此方法并返回false,因此界面不会旋转,好东西。 但是如果我在纵向视图中,并且到达该视图,则调用此方法并返回false,但是方向不会改变。在这种情况下,如果我将设备旋转到横向,该方法将返回true,接口将

  • 我在db_config中的设置: 但是日志文件仍然存在-即使我将检查点设置降低到。如果我在data目录中运行,那么除了最后一个文件之外,所有这些文件都将被删除。 有人知道如何让自动移除工作吗?我几乎放弃了,并添加了一个cron作业,以便在迁移期间运行。但我不确定这是否会引起问题。 我们在CentOS上使用带有BDB后端(准确地说是HDB)的OpenLDAP2.3.43。

  • 问题内容: 我在使用InnoDB的MySQL中有一个表,其中有一列名为“ id”的列。 所以我的问题是,每当我从表中删除最后一行然后插入新值时,新值都会在删除的ID之后插入。 我的意思是假设我的id是32,我想删除它,然后如果我在删除后插入新行,则列id会自动递增到33。因此序列格式被破坏了,即id = 30,31,33而且不是32。 因此,当我删除最后一列后插入时,请帮我分配ID 32(而不是3

  • 我已经为我的selenium项目实现了Testng和Cucumber。我通过运行Testng来运行我的测试用例。xml,我已将它们重定向到Testng Runner文件。每个运行程序文件中唯一的区别是@tag,它链接到Cucumber功能场景,因此我使用@sanity@regression等创建了单独的运行程序文件。我希望避免创建太多运行程序文件,因为只有@tag是一个变量。我想参数化注释,这样我