oracle solaris optimization tools
DESCRIPTION
Solaris Day, 27 Nov 2013, MoscowTRANSCRIPT
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Oracle Solaris
Optimization Tools
Frédéric Parienté
ISV Engineering Director
Solaris Developers, Performance and Applications
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
The following is intended to outline our general product
direction. It is intended for information purposes only, and may
not be incorporated into any contract. It is not a commitment to
deliver any material, code, or functionality, and should not be
relied upon in making purchasing decisions. The development,
release, and timing of any features or functionality described for
Oracle’s products remains at the sole discretion of Oracle.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Agenda
• Solaris Utilities (*stat)
• DTrace
• Solaris Studio
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Solaris Utilities
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Solaris Utilities : zonestat
root@global_zone:~# zonestat 10 10
Interval: 1, Duration: 0:00:10
SUMMARY Cpus/Online: 128/12 PhysMem: 256G VirtMem: 259G
---CPU---- --PhysMem-- --VirtMem-- --PhysNet--
ZONE USED %PART USED %USED USED %USED PBYTE %PUSE
[total] 118.10 92.2% 24.6G 9.62% 60.0G 23.0% 18.4E 100%
[system] 0.00 0.00% 9684M 3.69% 40.5G 15.5% - -
data-node3 42.13 32.9% 4897M 1.86% 6146M 2.30% 18.4E 100%
data-node1 41.49 32.4% 4891M 1.86% 6173M 2.31% 18.4E 100%
data-node2 33.97 26.5% 4851M 1.85% 6145M 2.30% 18.4E 100%
global 0.34 0.27% 283M 0.10% 420M 0.15% 2192 0.00%
name-node 0.15 0.11% 419M 0.15% 718M 0.26% 126 0.00%
sec-name-node 0.00 0.00% 205M 0.07% 363M 0.13% 0 0.00%
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Solaris Utilities : mpstat
root@global_zone:~# mpstat 1
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 85 0 10183 683 59 931 40 269 464 2 1315 30 14 0 56
1 80 0 34872 484 9 1096 39 317 498 2 1437 34 14 0 51
2 72 0 15632 325 4 669 30 166 334 1 1321 37 9 0 54
3 42 0 13422 253 3 553 32 144 277 2 818 31 7 0 62
root@global_zone:~# mpstat -A core 10
COR minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze
3074 103 0 23654 1680 697 1264 644 277 502 10 11268 748 52 0 0 8
3078 95 0 32090 893 137 1228 635 281 439 8 10929 759 41 0 0 8
3082 94 0 31574 889 129 1245 629 308 560 9 12792 753 47 0 0 8
3086 111 0 20262 829 121 1200 615 277 512 7 12657 753 47 0 0 8
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Solaris Utilities : fsstat
root@global_zone:~# fsstat -Z zfs 10 10
new name name attr attr lookup rddir read read write write
file remov chng get set ops ops ops bytes ops bytes
0 0 0 744 0 11.4K 0 6.01K 5.87M 0 0 zfs:global
0 0 0 151 0 3.27K 0 1.41K 1.94M 7 1.42K zfs:data-node1
0 0 0 359 0 8.72K 0 2.75K 3.95M 22 4.06K zfs:data-node2
0 0 0 413 0 9.03K 0 2.98K 4.22M 21 4.34K zfs:data-node3
0 0 0 14 0 51 0 0 0 0 0 zfs:name-node
0 0 0 14 0 51 0 0 0 0 0 zfs:sec-name-node
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
DTrace
• A dynamic troubleshooting and analysis technology first
introduced in Solaris 10 :
– a tool
– a programming language & interpreter
– an instrumentation framework
• Provides observability across the entire software stack
from one tool, allows to examine software execution like
never before.
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
DTrace in Action
Probes : Which events we are interested in monitoring
Predicates (optional) : When do we want to monitor the events
Actions (optional): What do we want to do when the above happens
One liner syntax : #dtrace –n 'probe /predicate/ {actions}'
Script syntax: #!/usr/bin/dtrace -s
probe description
/predicate/
{
actions
}
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
DTrace in Solaris 11
• USDT provider for Kerberos
• Networking providers for TCP, UDP and IPv4/6 protocols
• Storage providers for SMB and iSCSI
• CPC provider for processor-related events
• DTrace-based implementation of LatencyTOP
• Integration of DTrace with runtime languages
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
DTrace Toolkit
Over 230 scripts
Installed by default in Solaris 11
/usr/dtrace/DTT
More examples at /usr/demo/dtrace (also in Solaris 10)
Documentation, man pages, user guide
Each category has its own sub-directory
Most used scripts in top-level directory
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Demo
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Oracle Solaris Studio
#1 Development Toolsuite for Oracle Systems
• Maximize ROI
– Generate up to 5x faster code on SPARC
T5, M5 and x86
• Improve time to deliver
– Single suite of advanced tools designed
to leverage the Oracle stack for the
highest developer productivity
• Protect your application investment
– Strongest compatibility guarantee with
Oracle Solaris and Solaris Studio
Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Confidential – Oracle Internal 14
New with Oracle Solaris Studio 12.3
Accelerate
Performance
5x faster code on Oracle T5 than GCC
1.5x faster code on Intel x86 than GCC
Gain Extreme
Observability
New Code Analyzer for more reliable applications;
reports common coding & memory access errors faster
than competitive alternatives
Enhanced Performance Analyzer with system-wide
performance analysis
Improve
Productivity
Remote access to Solaris Studio tools from local
desktop (Oracle Solaris, Linux, Microsoft Windows,
Mac)
Streamlined Oracle DB application development
Simplify Oracle Tuxedo development with IDE plug-in
IPS distribution on Solaris 11 for simplified management
20% faster compile time
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Oracle Solaris Studio 12.3 – Analysis Suite
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Performance Analyzer
16
• Profile fully optimized and
parallelized production code
• Understand where time is
being spent
• Trace to source and identify
hotspots
• View timeline and call stack for
select events
• Compare multiple experiments
• Supports C/C++, Java,
OpenMP and distributed MPI-
based apps
Maximize Application Performance
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Code Analyzer (New Tool)
• Easily detect and fix
common coding errors,
including memory leaks
and access violations
• Advanced error filtering
and sorting capabilities
• Synthesizes three types
of errors
– Source code verification
– Memory access audits
– Unexercised code
• Identifies 45+ error types
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.
Ensure Application Reliability
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Thread Analyzer
18
• Easily identify complex
parallel programming
errors
• Detect hard to pinpoint
race and deadlock
conditions
• Supports Solaris threads,
P-threads, OpenMP 3.1
Simplify Multicore Programming
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Comprehensive Single Suite of Tools
Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 25