Your SlideShare is downloading. ×
Technical Panel Developing High-Performance Applications on Oracle Solaris
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Technical Panel Developing High-Performance Applications on Oracle Solaris

638
views

Published on

This panel discussion by Oracle engineering team members covers how they develop high-performance enterprise applications that take advantage of the latest SPARC servers from Oracle, plus Intel …

This panel discussion by Oracle engineering team members covers how they develop high-performance enterprise applications that take advantage of the latest SPARC servers from Oracle, plus Intel servers, with Oracle Solaris Studio and new Oracle Solaris 11 features. Panelists include engineers from the Oracle Solaris OS, Oracle Database, and Oracle Tuxedo development teams and Oracle ISV Engineering. They will discuss developer tools, parallel frameworks, best practices, and methodologies used in their projects to create world-class enterprise products. They will also present insights and case studies on parallelizing and optimizing application performance on Oracle Solaris and discuss the new features of Oracle Solaris 11.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
638
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Dedicated serversPhysical isolationSingle system resourcesMulti-system managementVirtual serversOS or Application isolationShared resourcesStack managementCloudsService isolationFlexible resources for virtual instancesCloud managementProvision, updateChargebackCapacity planning
  • Transcript

    • 1. 1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 2. Technical Panel:Developing High-PerformanceApplications on Oracle SolarisDon KretschSr. Director, OracleCON71962 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 3. Program Agenda  Panel Presentations – Presenters will share some of the development practices and tools their teams use to deliver reliable, scalable, high performance enterprise-ready products on Solaris  Audience Q&A3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 4. Panel Moderator Don Kretsch Sr. Director Solaris Developer Tools4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 5. Panel Speakers Todd Little Chief Architect, Oracle Tuxedo Binoy Sukumaran Sr. Director, Oracle Database Stefan Schneider Technologist, Oracle Solaris5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 6. ORACLE PRODUCT LOGO DON KRETSCH SENIOR DIRECTOR ORACLE SOLARIS STUDIO6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 7. Evolution of Deployment Environments Single applications Multiple applications Multiple applications running on dedicated running on virtualized running on engineered servers servers systems Order Order Entry Entry HR Web Tier Data Web base Finance Tier Finance HR Data Mail base Mail7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 8. Developer Challenges Single code Development base that must systems that perform well differ from across multiple deployment environments Developers deployment need environments platform- aware tools to Ability to develop meet these Application and analyze challenges correctness and applications that performance in are growing in an engineered size and systems complexity environment8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 9. Oracle Solaris Studio Compiler Suite Analysis Suite C, C++ Compilers use advanced Performance Analyzer provides code generation technology to unparalleled insight into your optimize apps for highest app, allowing you to identify performance on SPARC & x86 bottlenecks and improve performance by orders of magnitude Ne Fortran Compiler optimizes w compute intensive app performance Code Analyzer ensures app reliability by detecting app Debugger ensures app stability with vulnerabilities, including memory leaks event handling & multi-thread and memory access violations support Thread Analyzer simplifies complex© 2011 Oracle Corporation – Proprietary Library maximizes Performance and Confidential parallel programming errors by compute-intensive app performance detecting hard to pinpoint race and 4 using advanced numeric solver deadlock conditions libraries Integrated Development Environment increases developer efficiency 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 10. Oracle Product Teams Develop with Studio Studio Optimizes the Stack  Oracle Solaris Studio used to develop many Oracle products – SPARC SuperCluster – Exadata on Solaris – Oracle Solaris – Oracle Database – Java VM – Tuxedo Transaction Manager – Peoplesoft, JD Edwards, Hyperion, …  Optimized for Oracle hardware systems  Development platform of choice for top Oracle Customers and ISV Partners10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 11. Compiler Choice Impacts Performance 392% Float Pt. Apps Solaris 11 on SPARC T4 186% Integer Apps 0% 100% 200% 300% 400% Studio 12.3 Studio 12 gcc 4.5.x 287% Float Pt. Apps Solaris 11 on Intel x86 172% Integer Apps 0% 100% 200% 300% 400%Estimated results from SPECcpu 2006 benchmarks 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 12. Identify Application Performance Bottlenecks Studio Performance Analyzer  Profile fully optimized and parallelized production code  Support for 100’s of processes and 1000’s of threads  Shows execution data in easy to understand timeline charts and relates to source code  Compare multiple experiments  Minimal run-time impact (< 5%)12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 13. Access Remote Servers for Development Studio Remote Access IDE  Remotely build, debug, run, analyze SSH Solaris applications from Unix, Windows C++ or Mac OS desktops  User gestures are identical in both local and remote environments – Remote commands are invoked over secure connection (SSH) SFTP – Remote File System browser accesses server files through SFTP or any file sharing mechanism available in OS  Built-in terminal sharing connection to remote host13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 14. ORACLE PRODUCT LOGO TODD LITTLE CHIEF ARCHITECT ORACLE FUSION MIDDLEWARE14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 15. Tuxedo – Application Server SOA based – everything is a service 30+ years of development Supporting C, C++, COBOL, Python, Ruby, PHP, Java15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 16. Solaris Studio Tuxedo Support New plug-in Integrated development environment for Tuxedo applications – Creating – Building – Running – Debugging – Static and dynamic analysis Code completion and highlighting 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 17. Tuxedo and Solaris – Leading TPC-C  Goal – New TPC-C world record  iPlanet front-end as Tuxedo client  Needed 768 threads, bottleneck at 150 threads  Severe performance issues – mostly mutex related  Used DTrace to identify mutexes and performance issues  Eliminated unnecessary mutexes  Achieved 30,249,688 tpmC (500,000 tps), 3x best IBM results17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 18. Tuxedo Message Queue Slow message enqueue() performance  New product – merger of Oracle MessageQ and Tuxedo /Q  Persistent enqueue performance unacceptable  High percentage of kernel time in queue servers  DTrace identified shared memory locks and system calls  Removed unnecessary locks and system calls (settimer)18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 19. Best Practices  Consider performance in process – arch, design, code, review, test – Scaling, availability, parallel execution, contention  Establish repeatable automated benchmarks  Things to avoid: – Porting – build and sanity test regularly on all platforms – OS kernel - use instead  Shared memory, user level mutex, libibverbs – Context switches – stream and/or poll  Focus one or two late loads primarily on performance19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 20. ORACLE PRODUCT LOGO BINOY SUKUMARAN SENIOR DIRECTOR ORACLE DATABASE PLATFORM-SPECIFIC DEVELOPMENT20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 21. Oracle Database on Solaris Supported on SPARC and x86  Database – a very sophisticated software product – Development involves millions of lines of code – Several product components built automated nightly – Several thousand functional tests run nightly  OS and system platform support essential – Offers the most comprehensive set of Database features out there  Relies on low level kernel support – Key emphasis on performance  Leverages key development tools and OS support on Solaris21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 22. Oracle Database on Solaris  Oracle Solaris Studio 12 compiler – Builds the product bundle and day to day development on Solaris – Generates the most optimized machine code  Using aggressive optimization techniques – CPU optimized routines for common library calls like mem* functions  Profile Guided Optimization – Provides added level of performance optimization at object level – Instrument the Oracle binary and profile based on “common” workload – Predicts runtime behavior of the oracle binary – Expected probabilities of branches & execution of program blocks22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 23. Oracle Database on Solaris  Leverages a variety of key Solaris technologies – Solaris Zones & Oracle VM for SPARC  Provides isolation in our virtualized development server farm – For building the product nightly – Runs thousand’s of nightly Regression tests – To integrate hundreds of developer transactions/code updates – AES hardware assisted encryption on T4 and x8623 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 24. Oracle Database on Solaris DTrace – Provides excellent diagnosability during development – Understand and fix program behavior – I/O patterns etc. – Helps with transient problems that are hard to debug – like process deaths – Understand and fix performance issues  High user time, high system time/calls – Greatly reduces problem resolution time !24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 25. Oracle Database on Solaris Supported on SPARC and x86  Performance Analyzer – Collect/analyze performance data – Collector generates profile data  Call stacks  Hardware counters  Memory allocation – Analyzer reports on the collected metrics  Indentify areas of performance issues  Resource usage patterns – Key to ensuring database performance25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 26. Improved Reliability of Oracle Next-Gen DatabaseStudio Stale Pointer Detection Database Test Run-Time (in secs)  Next-gen Database stability was 100000 improved by using a Studio 10000 memory analysis tool to detect stale pointers 1000  New method is 60x faster than 100 current method - test cycle shrunk 10 from hours to minutes – Faster bug identification and fixing 1 Startup/Shutdown Query Test 2 Query Test 4 Baseline Old Method New Method26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 27. ORACLE PRODUCT LOGO STEFAN SCHNEIDER CHIEF TECHNOLOGIST ORACLE SOLARIS27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 28. Solaris Performance and Independent Software Vendors Motivation  Supportability of total stack  Application Performance  Support costs  Development time and costs  Customer Acceptance  Product life cycle28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 29. Example: Voice over IP Application SPARC T4 with Tuxedo, Spring 2012 400 CPS(V890) 30 CPS (T4-2) 1500 CPS (T4-2)  Problem: slow call routing – Root cause: database bulk load on same system slowed down call routing  Misconfigured network switch causing spurious interrupts  Used Solaris FX class priority 60 for 80+ threads (at the same time)  Diagnostics: DTrace – 10x more network interrupts compared to V890 – Many threads were stuck on CPUs  Result: from 60% system load at 400 CPS on V890 to single digit system load on T4-2 (load generators exhausted...)29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 30. Example: Telco Application + Red Stack SPARC T4 with Tuxedo, Spring 2012 380 TPS 5000 TPS  Issue 1: Serialized logging – Root cause: ostringstream() in C++ STL – Solution: Change request 7144618->Fix in STL and compiler->Run time library got updated – Lesson learned: Standardized libs benefit as well from software support  Issue 2: Naive memory allocation within application – Solution: use libumem (optimized for concurrent memory allocation) – Lesson learned: Fast growing applications face paradigm shifts  Tools used: DTrace, mpstat, prstat, plockstat30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 31. Example: Oracle Products Improved Performance on Solaris Solaris Studio Features that Improved Solaris OS Features that Improved Product Performance Product Performance  Oracle DB team used compiler’s profiled ATG Web Commerce,PeopleSoft, Siebel, JDE feedback option resulting in 5-10% better benchmarks used: performance (working with Siebel code)  Processor sets to benefit performance and  PeopleSoft product code increased level of scalability by 5-10% compiler optimization to “-O4” resulting in  Solaris zones for scalability and consolidation ~10% better performance  Priocntl() for some compute intensive process  Compiling Oracle Business Integration EE to speed up performance code with Interprocedural Optimization turned on (“-xipo”) led to ~7% better performance  Large page sizes (256GB)  Different memory allocators (libumem or libmtmalloc) instead of default malloc() in libc  Separate threads to handle interrupts31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 32. Panel Q & A32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 33. Summary  Consider performance during development - its difficult to retrofit  Don’t “port” – instead build and sanity test regularly on all platforms  Write code to take advantage of each platform’s unique capabilities, e.g., on Solaris explore using: – Processor sets, large page sizes, different memory allocators, DTrace, multiple threads for scalability, zones for isolation  Establish repeatable automated benchmarks to measure your progress  Development tool selection matters, using one toolset for all platforms is guaranteed to be sub-optimal33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 34. Oracle Solaris 11.1 & Oracle Solaris Studio 12.3 Best Place to Run Your Enterprise Applications World record performance leader Strongest compatibility guaranteeOracle Solaris Oracle Solaris Studio Non-stop innovation investment #1 UNIX for #1 Development Enterprise Tool suite for Oracle Systems 25+ years enterprise experience 34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 35. More Information Download, technical articles and more: oracle.com/goto/solarisstudioOpenWorld Sessions  Mon, Oct 1, 10:45 - 11:45 AM: Maximizing Your SPARC T4 Oracle Solaris Application Performance, CON 6382 (Marriott Marquis - Golden Gate)  Mon, Oct 1, 3:15 - 4:15 PM: Technical Panel: Developing High Performance Applications on Oracle Solaris, CON 7196 (Marriott Marquis - Golden Gate)Hands-on Lab  Wed, Oct 3, 1:15 - 2:15 PM: Develop C/C++ Applications for the Cloud with Oracle Tuxedo and Oracle Solaris Studio, HOL 10276 (Marriott Marquis - Salon 5/6)JavaOne Sessions  Mon, Oct 1, 8:30 – 9:30 AM: Mixed-Language Development: Leveraging Native Code from Java, CON 6714 (Hilton San Francisco -Continental Ballroom 6)  Tues, Oct 2, 1:00 – 2:00 PM: Take Performance Tuning of Your Enterprise Java Applications to the Next Level , CON 10213 (Hilton San Francisco -Continental Ballroom 6)35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 36. The preceding 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.36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
    • 37. 37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.