ASMCMD commands when executed with parameters are leaving the asm connection open "asmcmd daemon" and consumes high CPU usage.
Bug 28019068 - EXADATA: ASMCMD CONSUMING HIGH CPU IN 18C
Bug 28019068 - EXADATA: ASMCMD CONSUMING HIGH CPU IN 18C
$ ps -ef | grep asmcmd | grep -v grep
root 224347 1 3 03:20 ? 00:00:00 asmcmd daemon
grid 234123 1 2 03:20 ? 00:00:00 oracle+asm_asmcmd
pstack output:
#0 0x00007f4954b00050 in __open_nocancel () from /lib64/libpthread.so.0
#1 0x00000000005622de in PerlIOUnix_open ()
#2 0x0000000000563c74 in PerlIOBuf_open ()
#3 0x0000000000565795 in PerlIO_openn ()
#4 0x000000000053b030 in Perl_do_open6 ()
#5 0x00000000005274d2 in Perl_pp_open ()
#6 0x00000000004cefad in Perl_runops_standard ()
#7 0x0000000000443622 in S_run_body ()
#8 0x000000000044350b in perl_run ()
#9 0x000000000041de78 in main ()
You can see open ( ) call and leave pool connection open.
Workaround:
1. When you kick off an ASMCMD command, it actually establishes a connection to the ASM instance. To disable connection pooling, use the --nocp parameter to the ASMCMD tool:
2. Use commands within ASMCMD command line instead of passing parameters to avoid pool connections open.
root 224347 1 3 03:20 ? 00:00:00 asmcmd daemon
grid 234123 1 2 03:20 ? 00:00:00 oracle+asm_asmcmd
pstack output:
#0 0x00007f4954b00050 in __open_nocancel () from /lib64/libpthread.so.0
#1 0x00000000005622de in PerlIOUnix_open ()
#2 0x0000000000563c74 in PerlIOBuf_open ()
#3 0x0000000000565795 in PerlIO_openn ()
#4 0x000000000053b030 in Perl_do_open6 ()
#5 0x00000000005274d2 in Perl_pp_open ()
#6 0x00000000004cefad in Perl_runops_standard ()
#7 0x0000000000443622 in S_run_body ()
#8 0x000000000044350b in perl_run ()
#9 0x000000000041de78 in main ()
You can see open ( ) call and leave pool connection open.
Workaround:
1. When you kick off an ASMCMD command, it actually establishes a connection to the ASM instance. To disable connection pooling, use the --nocp parameter to the ASMCMD tool:
$ asmcmd --nocp <parameters>
2. Use commands within ASMCMD command line instead of passing parameters to avoid pool connections open.
super
ReplyDeleteThanks!
ReplyDelete