[root@srt-cd-01 ~]# java -jar /yen/sitg/chengdu/file-leak-detector-1.13-jar-with-dependencies.jar 17972 threshold=100,strong
怎么看日志?
[root@smart-cd-01 chengdu]# java -javaagent:/yuanben/stg/chengdu/file-leak-detector-1.13-jar-with-dependencies.jar=help
File leak detector arguments (to specify multiple values, separate them by ',':
help - show the help screen.
trace - log every open/close operation to stderr.
trace=FILE - log every open/close operation to the given file.
error=FILE - if 'too many open files' error is detected, send the dump here.
by default it goes to stderr.
threshold=N - instead of waiting until 'too many open files', dump once
we have N descriptors open.
http=PORT - Run a mini HTTP server that you can access to get stats on demand
Specify 0 to choose random available port, -1 to disable, which is default.
strong - Don't let GC auto-close leaking file descriptors
listener=S - Specify the fully qualified name of ActivityListener class to activate from beginning
dumpatshutdown- Dump open file handles at shutdown
excludes=FILE - Ignore files opened directly/indirectly in specific methods.
File lists 'some.pkg.ClassName.methodName' patterns.
[root@srt-cd-01 chengdu]# java -javaagent:/yien/sitg/chngdu/file-leak-detector-1.13-jar-with-dependencies.jar=trace
File leak detector installed
Opened /root/.oracle_jre_usage/8be3991b2932dbb0.timestamp by thread:main on Sun Apr 19 15:35:45 CST 2020
at java.io.FileOutputStream.<init>(FileOutputStream.java:214)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at sun.usagetracker.UsageTrackerClient.registerUsage(UsageTrackerClient.java:492)
at sun.usagetracker.UsageTrackerClient.setupAndTimestamp(UsageTrackerClient.java:352)
at sun.usagetracker.UsageTrackerClient.access$000(UsageTrackerClient.java:96)
at sun.usagetracker.UsageTrackerClient$4.run(UsageTrackerClient.java:374)
at sun.usagetracker.UsageTrackerClient$4.run(UsageTrackerClient.java:369)
at java.security.AccessController.doPrivileged(Native Method)
at sun.usagetracker.UsageTrackerClient.run(UsageTrackerClient.java:369)
at sun.misc.PostVMInitHook.trackJavaUsage(PostVMInitHook.java:29)
at sun.misc.PostVMInitHook.run(PostVMInitHook.java:21)
Closed /root/.oracle_jre_usage/8be3991b2932dbb0.timestamp by thread:main on Sun Apr 19 15:35:45 CST 2020
at java.io.FileOutputStream.<init>(FileOutputStream.java:214)
at java.io.FileOutputStream.<init>(FileOutputStream.java:162)
at sun.usagetracker.UsageTrackerClient.registerUsage(UsageTrackerClient.java:492)
at sun.usagetracker.UsageTrackerClient.setupAndTimestamp(UsageTrackerClient.java:352)
at sun.usagetracker.UsageTrackerClient.access$000(UsageTrackerClient.java:96)
at sun.usagetracker.UsageTrackerClient$4.run(UsageTrackerClient.java:374)
at sun.usagetracker.UsageTrackerClient$4.run(UsageTrackerClient.java:369)
at java.security.AccessController.doPrivileged(Native Method)
at sun.usagetracker.UsageTrackerClient.run(UsageTrackerClient.java:369)
at sun.misc.PostVMInitHook.trackJavaUsage(PostVMInitHook.java:29)
at sun.misc.PostVMInitHook.run(PostVMInitHook.java:21)
Opened /usr/java/jdk1.8.0_191-amd64/jre/lib/currency.data by thread:main on Sun Apr 19 15:35:45 CST 2020
at java.io.FileInputStream.<init>(FileInputStream.java:139)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.util.Currency$1.run(Currency.java:221)
at java.util.Currency$1.run(Currency.java:214)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.Currency.<clinit>(Currency.java:214)
at java.text.DecimalFormatSymbols.initialize(DecimalFormatSymbols.java:638)
at java.text.DecimalFormatSymbols.<init>(DecimalFormatSymbols.java:113)
at sun.util.locale.provider.DecimalFormatSymbolsProviderImpl.getInstance(DecimalFormatSymbolsProviderImpl.java:85)
at java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:180)
at sun.util.locale.provider.NumberFormatProviderImpl.getInstance(NumberFormatProviderImpl.java:178)
at sun.util.locale.provider.NumberFormatProviderImpl.getNumberInstance(NumberFormatProviderImpl.java:149)
at java.text.NumberFormat.getInstance(NumberFormat.java:875)
at java.text.NumberFormat.getInstance(NumberFormat.java:861)
at java.text.NumberFormat.getInstance(NumberFormat.java:442)
at java.text.MessageFormat.subformat(MessageFormat.java:1271)
at java.text.MessageFormat.format(MessageFormat.java:865)
at java.text.Format.format(Format.java:157)
at java.text.MessageFormat.format(MessageFormat.java:841)
at sun.launcher.LauncherHelper.getLocalizedMessage(LauncherHelper.java:320)
at sun.launcher.LauncherHelper.initHelpMessage(LauncherHelper.java:333)
Closed /usr/java/jdk1.8.0_191-amd64/jre/lib/currency.data by thread:main on Sun Apr 19 15:35:45 CST 2020
at java.io.FileInputStream.<init>(FileInputStream.java:139)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at java.util.Currency$1.run(Currency.java:221)
at java.util.Currency$1.run(Currency.java:214)
at java.security.AccessController.doPrivileged(Native Method)
at java.util.Currency.<clinit>(Currency.java:214)
at java.text.DecimalFormatSymbols.initialize(DecimalFormatSymbols.java:638)
at java.text.DecimalFormatSymbols.<init>(DecimalFormatSymbols.java:113)
at sun.util.locale.provider.DecimalFormatSymbolsProviderImpl.getInstance(DecimalFormatSymbolsProviderImpl.java:85)
at java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:180)
at sun.util.locale.provider.NumberFormatProviderImpl.getInstance(NumberFormatProviderImpl.java:178)
at sun.util.locale.provider.NumberFormatProviderImpl.getNumberInstance(NumberFormatProviderImpl.java:149)
at java.text.NumberFormat.getInstance(NumberFormat.java:875)
at java.text.NumberFormat.getInstance(NumberFormat.java:861)
at java.text.NumberFormat.getInstance(NumberFormat.java:442)
at java.text.MessageFormat.subformat(MessageFormat.java:1271)
at java.text.MessageFormat.format(MessageFormat.java:865)
at java.text.Format.format(Format.java:157)
at java.text.MessageFormat.format(MessageFormat.java:841)
at sun.launcher.LauncherHelper.getLocalizedMessage(LauncherHelper.java:320)
at sun.launcher.LauncherHelper.initHelpMessage(LauncherHelper.java:333)
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-server to select the "server" VM
The default VM is server,
because you are running on a server-class machine.
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A : separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose:[class|gc|jni]
enable verbose output
-version print product version and exit
-version:<value>
Warning: this feature is deprecated and will be removed
in a future release.
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -no-jre-restrict-search
Warning: this feature is deprecated and will be removed
in a future release.
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions with specified granularity
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions with specified granularity
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument
-splash:<imagepath>
show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.