[
https://issues.apache.org/jira/browse/SOLR-13394?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16960387#comment-16960387
]
Robert Bunch commented on SOLR-13394:
-
late chiming in on this... but I agree, it'd be very, very helpful for it to
be a knob that can be turned (like -debug). Perhaps also enable JMX w/ the
same switch?
I manage a lot of clusters, Solr and ES, and any means of gathering info –
specifically old gen FGC's – is invaluable. Discovering the JVMs in the first
place is critical.
{code:java}
#!/bin/bash
for pid in `pgrep -f start.jar`; do
# for pid in `pgrep java`; do # normally I use this, as I don't have a local
ZK...
st=`ps -eo pid,etime | grep ${pid} | awk '{$1=""; print $0}'`
cli=`${JAVA_HOME}/bin/jinfo $pid 2>/dev/null | grep -i xmx | awk '{print
$3}'` # placement of -Xmx will vary
if [[ "`uname`" == "Darwin" ]]; then
port=`lsof -p $pid | grep TCP | grep LISTEN | grep :89 | awk '{print $9}'`
else
port=`netstat -nap 2>/dev/null | grep $pid | grep :89 | grep LISTEN | awk
'{print $4}'` # this will vary, JMX port conflict?
fi
echo $port | grep ":89" >/dev/null; is_solr_port=$?
if [[ $is_solr_port -eq 0 ]]; then
fgc=`${JAVA_HOME}/bin/jstat -gcutil $pid | awk '{print $9, $10}' | tail
-1` # this will vary, java 7 vs 8 vs... get count, time
if [[ "$cli" == "" ]]; then cli="UNKNOWN"; fi
printf "%s %6d %'9d %'11.2f %s %s\n" $port $pid $fgc $cli $st
fi
done | sort | egrep --color=always '^.*?[0-9]{4} +[0-9]{3,} +[0-9,]{4,} .*|$' #
change throttle of redline at 3rd grouping
for j in $(seq 1 60); do echo -n '.'; sleep 60; done{code}
when it works (port, pid, # old gen FGCs, total old gen FGC time, -Xmx param,
process uptime (days-hours:min:sec)
{code:java}
$ ./fgc-jira.sh
*:8981 15685 0 0.00 -Xmx1g 06:15:13
*:8982 15779 0 0.00 -Xmx1g 06:15:09
*:8983 15873 0 0.00 -Xmx1g 06:15:04
*:8984 15967 0 0.00 -Xmx1g 06:15:00
...^C (it'll tick off a dot for each minute, then an hour later here's another
sample){code}
when I can't get to that info (in this case, :8985 is 8.2 running vanilla w/
-XX:+PerfDisableSharedMem)
{code:java}
$ ./fgc-jira.sh
sun.jvmstat.monitor.MonitorException: 17297 not found
at
jdk.internal.jvmstat/sun.jvmstat.perfdata.monitor.protocol.local.PerfDataBuffer.(PerfDataBuffer.java:84)
at
jdk.internal.jvmstat/sun.jvmstat.perfdata.monitor.protocol.local.LocalMonitoredVm.(LocalMonitoredVm.java:68)
at
jdk.internal.jvmstat/sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.getMonitoredVm(MonitoredHostProvider.java:77)
at jdk.jcmd/sun.tools.jstat.Jstat.logSamples(Jstat.java:107)
at jdk.jcmd/sun.tools.jstat.Jstat.main(Jstat.java:70)
Caused by: java.lang.IllegalArgumentException: Could not map vmid to user Name
at java.base/jdk.internal.perf.Perf.attach(Native Method)
at java.base/jdk.internal.perf.Perf.attachImpl(Perf.java:270)
at java.base/jdk.internal.perf.Perf.attach(Perf.java:200)
at
jdk.internal.jvmstat/sun.jvmstat.perfdata.monitor.protocol.local.PerfDataBuffer.(PerfDataBuffer.java:64)
... 4 more
./fgc-jira.sh: line 15: printf: -XX:+UseG1GC: invalid number
./fgc-jira.sh: line 15: printf: 58:12: invalid number
$ ./fgc-jira.sh
*:8981 15685 0 0.00 -Xmx1g 06:15:13
*:8982 15779 0 0.00 -Xmx1g 06:15:09
*:8983 15873 0 0.00 -Xmx1g 06:15:04
*:8984 15967 0 0.00 -Xmx1g 06:15:00
*:8985 17297 0 0.00 (blew up trying to get jinfo for this node)
...^C{code}
> Change default GC from CMS to G1
>
>
> Key: SOLR-13394
> URL: https://issues.apache.org/jira/browse/SOLR-13394
> Project: Solr
> Issue Type: Improvement
>Reporter: Ishan Chattopadhyaya
>Assignee: Ishan Chattopadhyaya
>Priority: Major
> Fix For: 8.1
>
> Attachments: SOLR-13394.patch, SOLR-13394.patch
>
> Time Spent: 1h
> Remaining Estimate: 0h
>
> CMS has been deprecated in new versions of Java
> (http://openjdk.java.net/jeps/291). This issue is to switch Solr default from
> CMS to G1.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
-
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org