我们的企业应用程序部署在Jboss wildfly 8.2中。使用环境变量JBOSS_CONSOLE在启动期间设置jboss控制台日志。这可确保使用kill -QUIT触发的任何线程转储都转储到jboss_console.log。 GC统计信息(使用-XX:+ PrintGCTimeStamps -XX:+ PrintGCDetails收集)也会发送到此文件。
日志文件的旋转由
完成cat / dev / null> jboss_console.log
即使这会降低文件大小,在触发使用的线程转储时,文件大小也会增加到(旋转前的文件大小+新线程转储的大小)。因此,除非我们重新启动jboss并明确删除文件,否则文件大小不会降低。
此外,du& amp;的输出明显不一致。 ls命令。
[root @ myserver logs] #du -csh jboss_console.log
28M jboss_console.log
28M 总计
[root @ myserver logs] #ls -lrtS jboss_console.log -h
-rwxr-XR-X。 1 admin admin 1.7G 6月22日05:28 jboss_console.log
问题是jboss重启一个月后,文件系统操作速度减慢到十分之一。即如果我在我的apache中托管了一个大小为1 GB的简单静态文本文件,将其下载到我的本地框就可以完成3分钟。但一个月后,同样的手术需要30分钟。重新启动jboss后,问题立即消失。系统中没有明显的CPU,内存或IO峰值。
这是由jboss_console.log大小引起的吗?
答案 0 :(得分:0)
我假设jboss_console.log
是通过管道流程的stdout
和stderr
流来创建的。如果是这种情况,则问题可能出现在操作系统级别。
默认情况下,CONSOLE
处理程序只会记录到System.out
。如果日志的大小是一个问题,您可以删除或禁用CONSOLE
处理程序,因为server.log
将包含相同的信息。
要从根记录器中删除CONSOLE
处理程序,您可以使用以下CLI命令。
/subsystem=logging/root-logger=ROOT:remove-handler(name=CONSOLE)
我不确定这是否真的能回答你的问题,但是可以选择保持jboss_console.log
的大小。