SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Best Practices for Optimizing
           Blackboard Learn
                    Steve Feldman,
           sfeldman@blackboard.com
optimizing* The process of increasing speed
  (performance) and capacity (scalability) of a system
  and/or program.
What We’ll Cover

•  Deploy for performance from the start.
•  Optimizing the platform components.
•  Continuous measurements are absolutely critical.
Scalable Deployments
Flexible and Scalable Application
Deployment
Deployment: Large Address Space
•  As of Blackboard Learn™ Release 9.1 all supported/
   certified configurations include a 64-bit option.
•  Pushing more processing to client and DB over the last
   few releases, but major memory management technique
   is to use more application caches.
   –  Memory stays persistent longer
   –  Less wasteful from a creation/destruction perspective, but puts
      greater demands on larger spaces.
•  Most of our application testing focused on 4GB and 8GB
   JVM deployments on 6GB and 10GB OS spaces.
   –  Limited testing at 16GB and 32GB
Deployment: Resource Utilization via Virtualization

 •  Moore’s law is in full effect
    –  CPUs are getting faster with more cores
    –  Memory is in abundance and cheap
    –  Storage is grossly abundant
 •  Massive systems can be obtained at low cost, but cannot
    be saturated in stand-alone configurations.
 •  Virtualization offers this opportunity…
    –  Deploy with availability in mind
    –  Saturate system resources
    –  Save money and data center space
Deployment: Improving Page Responsiveness
•  Gzip…Gzip…Gzip…
   –  All of our supported browsers handle gzip?
   –  Reduces payload
       •  Improves lower latency connections like Cable, DSL and Dial-up
   –  Minor overhead on the application layer (~2% to ~5%)
       •  Have the option to perform at the load-balancer layer
   –  Most Bb deployments do not enable Gzip at all
       •  Even when enabled, some proxies and software packages mess-up
          the Accept Encoding Header
•  Optimize your images
   –  Page size really does matter
   –  Reduce the size without reducing the quality
   –  Smush.it, PunnyPng, OptiPng, RIOT and ImageOptim
Example Page Waterfall
Tools for Page Performance
•  Analysis Tools
   –  Independent tools: Fiddler, HTTPWatch, WebPageTest.org, Web
      Inspector (Mac), IE Developer Tools
   –  Browser Plugins: Firebug/YSlow, Google Page Speed,
      WebPageTest Client
   –  JavaScript tools: dynatrace, IE Developer Tools,
•  Optimization Tools
   –  Image optimization to reduced overall size and metadata:
      SmushIt, PNGOptimize, PNGCrusher, OptiPng and
      graphicsoptimization.com
       •  http://yuiblog.com/blog/2008/10/29/imageopt-1/
   –  CSS optimization to reduce unused elements and compress
      CSS of unnecessary white spaces: CSS Optimizer, CSS
      Compressor and CleanCSS
Optimizing the Web Server
•  The web server in the BbLearn configuration is nothing
   more than a gateway to the application container.
   –  When clusters were more relevant, the web server acted as a
      pseudo load-balancer.
•  Not many opportunities for optimization other than
   –  KeepAlives
   –  Interfaces
   –  Compression
•  It can become a bottleneck if not properly optimized
   –  Better to have high ceilings from an interface perspective
Optimizing the JVM
•  Java hotspot offers standard –X and non-standard –XX
   options for performance and behavior.
   –  -X options are always guaranteed across releases and patches of
      Java.
   –  -XX options must be used with caution as they are subject to
      change with any release of Java.
•  -XX options should be tested and measured using the
   production safe arguments.
   –  Be careful of leveraging options you see on ListServes and
      Google
•  Read the release notes of Java for “performance” updates
   –  http://java.sun.com/javase/6/webnotes/ReleaseNotes.html
Regions of the JVM
Optimizing the JVM
•  Cross-platform recommendation for using Concurrent
   Mark Sweep Collector
   –  Best optimized for 64-bit address
   –  Combine –XX:+UseConcMarkSweepGCwith –XX:+UseParNewGC
•  Manually size New Space using –XX:NewSize and –
   XX:MaxNewSize options (1/4 to 1/3 total heap).
   –  Consider Survivor Space ratios 4 or lower.
•  Be careful about sharing –XX non-standard options across
   customers.
   –  If you don’t understand what the option does and it’s not
      recommended by Blackboard, best choice is to not use it.
•  PermSpace and B2s
   –  Every B2 you add, make sure to measure PermSpace usage via
      tools like JStat and VerboseGC
High Level Old Space Collection
Prototyping JVM Arguments
•  Wrapper.conf exists on both
   UNIX and Windows
   configurations for handling
   JVM arguments.
•  Options can be tested out
   without a
   PushConfigUpdates by
   simply adding an additional
   line with
   –  wrapper.java.additional.<insert
      numeric sequence>=
   –  Simply issue a “./
      ServiceController
      services.appserver.restart” to
      restart the JVM without
      arguments
PrintGCStats
Tools for Java Instrumentation
•  GC Log Analysis Tools: PrintGCStats, Jstat,
   GCViewer,
•  Thread Analysis Tools: Samurai, JConsole,
   JavaVisualVM,
•  Memory Analysis Tools: Eclipse Memory Analyzer,
   Jhat,
•  Robust Commercial Tools: Quest Foglight, Oracle
   OEM, Dynatrace for Java, CA IntroScope
•  Profiling Tools: Jprobe, YourKit, JProfiler
Optimizing the Database: SQL Server
•  # of data files makes no difference on SQL Server for
   Data and Transaction
•  Allow the data/transaction files to grow as big as they
   want within reason.
   –  What’s reason: 64GB
   –  http://msdn.microsoft.com/en-us/library/ms143432(sql.90).aspx
•  TempDB is completely different story
   –  # of files = # of DB Threads
   –  Set first X files to a uniform size, set last file to same size with
      auto-extension ON
   –  Determine size need over time
•  Separate volume for paging file
Optimizing the Database: SQL
Server
•  Be aware of MDOP: Max Degree of Parallelism
   –  Setting to unlimited can have a negative affect on query
      performance unintentionally.
•  AWE can and does work on 64-bit systems
•  Configure READ_COMMITTED_SNAPSHOT
•  Two nuggets of information:
   –  Learn How to Use SQL DMVs
   –  Study SQL Server Wait Events and Tuning
Optimizing the Database: Oracle
•  Balance I/Os across multiple data files (~2 to 8GB per
   file).
•  REDO is critical to performance a session/query level.
   –  Be aware of how much REDO is being used over time.
   –  NOLOGGING will disable, be we rarely use NOLOGGING
•  TEMP is very complex and used for managing transient
   data.
   –  One TEMP file is adequate
   –  If latency exists on TEMP, consider introducing TEMP file groups
•  SGA is important, but PGA can be your best friend or your
   worst enemy with high concurrency.
Optimizing the Database: Oracle
•  Oracle CBO can be your friend
   –  Must understand optimizer behavior
   –  Willingness to read Cost Execution Plans
•  Using Wait Events and Cost Execution Plans for tuning
   initiatives
   –  Wait events are at a system, session and query level
•  Importance of Statistics and Histograms
   –  CBO is just guessing without properly set statistics and
      histograms.
   –  CBO is dependent on your data.
Approach to Understanding DB Performance

•  Capture statements using some pre-identified tool
   –  Oracle AWR and ASH (Session Level)
   –  SQL Server Performance Dashboard and Performance
      Warehouse
•  Review Instance Level Information to gain a cursory view
   of “system” performance.
•  Deep dive into SQL Analysis
   –  Focus on Logical I/Os as starting point.
       •  Physical I/Os are important, but more often logical
   –  Drill into CPU consumers followed by executions
   –  Isolate physical and structural for over usage and possible
      locking conditions
   –  Question why executions, but 0 rows processed
   –  Importance of both: Histograms and Statistics
       •  Know your data better than your DBAs
Please provide feedback for this session by emailing
        BbWorldFeedback@blackboard.com.


 The subject of the email should be title of this
                     session:
  Best Practices for Optimizing Blackboard Learn

Mais conteúdo relacionado

Mais procurados

EDB Postgres DBA Best Practices
EDB Postgres DBA Best PracticesEDB Postgres DBA Best Practices
EDB Postgres DBA Best PracticesEDB
 
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsJignesh Shah
 
Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...
Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...
Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...xKinAnx
 
Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...
Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...
Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...xKinAnx
 
MariaDB High Availability Webinar
MariaDB High Availability WebinarMariaDB High Availability Webinar
MariaDB High Availability WebinarMariaDB plc
 
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree Ashnikbiz
 
001 hbase introduction
001 hbase introduction001 hbase introduction
001 hbase introductionScott Miao
 
004 architecture andadvanceduse
004 architecture andadvanceduse004 architecture andadvanceduse
004 architecture andadvanceduseScott Miao
 
Enterprise PostgreSQL - EDB's answer to conventional Databases
Enterprise PostgreSQL - EDB's answer to conventional DatabasesEnterprise PostgreSQL - EDB's answer to conventional Databases
Enterprise PostgreSQL - EDB's answer to conventional DatabasesAshnikbiz
 
Scaling Up and Out your Virtualized SQL Servers
Scaling Up and Out your Virtualized SQL ServersScaling Up and Out your Virtualized SQL Servers
Scaling Up and Out your Virtualized SQL Serversheraflux
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMariaDB plc
 
hbaseconasia2017: HBase在Hulu的使用和实践
hbaseconasia2017: HBase在Hulu的使用和实践hbaseconasia2017: HBase在Hulu的使用和实践
hbaseconasia2017: HBase在Hulu的使用和实践HBaseCon
 
Right-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual MachineRight-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual Machineheraflux
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQLPeter Eisentraut
 
Hardware Provisioning
Hardware ProvisioningHardware Provisioning
Hardware ProvisioningMongoDB
 
From distributed caches to in-memory data grids
From distributed caches to in-memory data gridsFrom distributed caches to in-memory data grids
From distributed caches to in-memory data gridsMax Alexejev
 
Elephants in the Cloud
Elephants in the CloudElephants in the Cloud
Elephants in the CloudMike Fowler
 
Chef conf-2015-chef-patterns-at-bloomberg-scale
Chef conf-2015-chef-patterns-at-bloomberg-scaleChef conf-2015-chef-patterns-at-bloomberg-scale
Chef conf-2015-chef-patterns-at-bloomberg-scaleBiju Nair
 
VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...
VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...
VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...VMworld
 

Mais procurados (20)

EDB Postgres DBA Best Practices
EDB Postgres DBA Best PracticesEDB Postgres DBA Best Practices
EDB Postgres DBA Best Practices
 
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized EnvironmentsBest Practices of HA and Replication of PostgreSQL in Virtualized Environments
Best Practices of HA and Replication of PostgreSQL in Virtualized Environments
 
Apache Geode Offheap Storage
Apache Geode Offheap StorageApache Geode Offheap Storage
Apache Geode Offheap Storage
 
Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...
Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...
Ibm spectrum scale fundamentals workshop for americas part 2 IBM Spectrum Sca...
 
Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...
Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...
Ibm spectrum scale fundamentals workshop for americas part 4 Replication, Str...
 
MariaDB High Availability Webinar
MariaDB High Availability WebinarMariaDB High Availability Webinar
MariaDB High Availability Webinar
 
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree
 
001 hbase introduction
001 hbase introduction001 hbase introduction
001 hbase introduction
 
004 architecture andadvanceduse
004 architecture andadvanceduse004 architecture andadvanceduse
004 architecture andadvanceduse
 
Enterprise PostgreSQL - EDB's answer to conventional Databases
Enterprise PostgreSQL - EDB's answer to conventional DatabasesEnterprise PostgreSQL - EDB's answer to conventional Databases
Enterprise PostgreSQL - EDB's answer to conventional Databases
 
Scaling Up and Out your Virtualized SQL Servers
Scaling Up and Out your Virtualized SQL ServersScaling Up and Out your Virtualized SQL Servers
Scaling Up and Out your Virtualized SQL Servers
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
 
hbaseconasia2017: HBase在Hulu的使用和实践
hbaseconasia2017: HBase在Hulu的使用和实践hbaseconasia2017: HBase在Hulu的使用和实践
hbaseconasia2017: HBase在Hulu的使用和实践
 
Right-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual MachineRight-Sizing your SQL Server Virtual Machine
Right-Sizing your SQL Server Virtual Machine
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
 
Hardware Provisioning
Hardware ProvisioningHardware Provisioning
Hardware Provisioning
 
From distributed caches to in-memory data grids
From distributed caches to in-memory data gridsFrom distributed caches to in-memory data grids
From distributed caches to in-memory data grids
 
Elephants in the Cloud
Elephants in the CloudElephants in the Cloud
Elephants in the Cloud
 
Chef conf-2015-chef-patterns-at-bloomberg-scale
Chef conf-2015-chef-patterns-at-bloomberg-scaleChef conf-2015-chef-patterns-at-bloomberg-scale
Chef conf-2015-chef-patterns-at-bloomberg-scale
 
VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...
VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...
VMworld 2013: Strategic Reasons for Classifying Workloads for Tier 1 Virtuali...
 

Destaque

Microsoft Power Point Best Practices For Scaling Heavily Adopted And Concur...
Microsoft Power Point   Best Practices For Scaling Heavily Adopted And Concur...Microsoft Power Point   Best Practices For Scaling Heavily Adopted And Concur...
Microsoft Power Point Best Practices For Scaling Heavily Adopted And Concur...Steve Feldman
 
Hied blackboard whitepaper
Hied blackboard whitepaperHied blackboard whitepaper
Hied blackboard whitepaperSteve Feldman
 
Scaling Blackboard Learn™ for High Performance and Delivery
Scaling Blackboard Learn™ for High Performance and DeliveryScaling Blackboard Learn™ for High Performance and Delivery
Scaling Blackboard Learn™ for High Performance and DeliverySteve Feldman
 
Cookbook for Administrating Blackboard Learn
Cookbook for Administrating Blackboard LearnCookbook for Administrating Blackboard Learn
Cookbook for Administrating Blackboard LearnSteve Feldman
 
B2 2006 tomcat_clusters
B2 2006 tomcat_clustersB2 2006 tomcat_clusters
B2 2006 tomcat_clustersSteve Feldman
 
PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role
PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role
PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role Steve Feldman
 

Destaque (7)

Microsoft Power Point Best Practices For Scaling Heavily Adopted And Concur...
Microsoft Power Point   Best Practices For Scaling Heavily Adopted And Concur...Microsoft Power Point   Best Practices For Scaling Heavily Adopted And Concur...
Microsoft Power Point Best Practices For Scaling Heavily Adopted And Concur...
 
Hied blackboard whitepaper
Hied blackboard whitepaperHied blackboard whitepaper
Hied blackboard whitepaper
 
Scaling Blackboard Learn™ for High Performance and Delivery
Scaling Blackboard Learn™ for High Performance and DeliveryScaling Blackboard Learn™ for High Performance and Delivery
Scaling Blackboard Learn™ for High Performance and Delivery
 
Cookbook for Administrating Blackboard Learn
Cookbook for Administrating Blackboard LearnCookbook for Administrating Blackboard Learn
Cookbook for Administrating Blackboard Learn
 
Logonomics
LogonomicsLogonomics
Logonomics
 
B2 2006 tomcat_clusters
B2 2006 tomcat_clustersB2 2006 tomcat_clusters
B2 2006 tomcat_clusters
 
PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role
PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role
PTOn...Finding the Time to Dedicate Individual Projects of Passion and Role
 

Semelhante a 071410 sun a_1515_feldman_stephen

Cognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksCognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksSenturus
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community
 
Understanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and PerformanceUnderstanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and PerformanceAmazon Web Services
 
05. performance-concepts
05. performance-concepts05. performance-concepts
05. performance-conceptsMuhammad Ahad
 
Capacity Planning
Capacity PlanningCapacity Planning
Capacity PlanningMongoDB
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systemselliando dias
 
MongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDB
MongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDBMongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDB
MongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDBMongoDB
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP PerformanceBIOVIA
 
Webinar: Best Practices for Upgrading to MongoDB 3.0
Webinar: Best Practices for Upgrading to MongoDB 3.0Webinar: Best Practices for Upgrading to MongoDB 3.0
Webinar: Best Practices for Upgrading to MongoDB 3.0MongoDB
 
Handling Massive Writes
Handling Massive WritesHandling Massive Writes
Handling Massive WritesLiran Zelkha
 
Webinar: Best Practices for Upgrading to MongoDB 3.2
Webinar: Best Practices for Upgrading to MongoDB 3.2Webinar: Best Practices for Upgrading to MongoDB 3.2
Webinar: Best Practices for Upgrading to MongoDB 3.2Dana Elisabeth Groce
 
Designing, Building, and Maintaining Large Cubes using Lessons Learned
Designing, Building, and Maintaining Large Cubes using Lessons LearnedDesigning, Building, and Maintaining Large Cubes using Lessons Learned
Designing, Building, and Maintaining Large Cubes using Lessons LearnedDenny Lee
 
Taking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout SessionTaking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout SessionSplunk
 
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...Amazon Web Services
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMariaDB plc
 
VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...
VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...
VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...VMworld
 
Basic Application Performance Optimization Techniques (Backend)
Basic Application Performance Optimization Techniques (Backend)Basic Application Performance Optimization Techniques (Backend)
Basic Application Performance Optimization Techniques (Backend)Klas Berlič Fras
 

Semelhante a 071410 sun a_1515_feldman_stephen (20)

Cognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & TricksCognos Performance Tuning Tips & Tricks
Cognos Performance Tuning Tips & Tricks
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
 
Understanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and PerformanceUnderstanding Elastic Block Store Availability and Performance
Understanding Elastic Block Store Availability and Performance
 
05. performance-concepts
05. performance-concepts05. performance-concepts
05. performance-concepts
 
Capacity Planning
Capacity PlanningCapacity Planning
Capacity Planning
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systems
 
MongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDB
MongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDBMongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDB
MongoDB Days Silicon Valley: Best Practices for Upgrading to MongoDB
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
Webinar: Best Practices for Upgrading to MongoDB 3.0
Webinar: Best Practices for Upgrading to MongoDB 3.0Webinar: Best Practices for Upgrading to MongoDB 3.0
Webinar: Best Practices for Upgrading to MongoDB 3.0
 
Handling Massive Writes
Handling Massive WritesHandling Massive Writes
Handling Massive Writes
 
Webinar: Best Practices for Upgrading to MongoDB 3.2
Webinar: Best Practices for Upgrading to MongoDB 3.2Webinar: Best Practices for Upgrading to MongoDB 3.2
Webinar: Best Practices for Upgrading to MongoDB 3.2
 
Designing, Building, and Maintaining Large Cubes using Lessons Learned
Designing, Building, and Maintaining Large Cubes using Lessons LearnedDesigning, Building, and Maintaining Large Cubes using Lessons Learned
Designing, Building, and Maintaining Large Cubes using Lessons Learned
 
Taking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout SessionTaking Splunk to the Next Level - Architecture Breakout Session
Taking Splunk to the Next Level - Architecture Breakout Session
 
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
AWS re:Invent 2016| DAT318 | Migrating from RDBMS to NoSQL: How Sony Moved fr...
 
Maximizing performance via tuning and optimization
Maximizing performance via tuning and optimizationMaximizing performance via tuning and optimization
Maximizing performance via tuning and optimization
 
Performance tuning in sql server
Performance tuning in sql serverPerformance tuning in sql server
Performance tuning in sql server
 
VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...
VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...
VMworld Europe 2014: Advanced SQL Server on vSphere Techniques and Best Pract...
 
Basic Application Performance Optimization Techniques (Backend)
Basic Application Performance Optimization Techniques (Backend)Basic Application Performance Optimization Techniques (Backend)
Basic Application Performance Optimization Techniques (Backend)
 
Scalability Design Principles - Internal Session
Scalability Design Principles - Internal SessionScalability Design Principles - Internal Session
Scalability Design Principles - Internal Session
 

Mais de Steve Feldman

Day 2 05 - steve feldman - logging matters
Day 2 05 - steve feldman - logging mattersDay 2 05 - steve feldman - logging matters
Day 2 05 - steve feldman - logging mattersSteve Feldman
 
Emerging technologies
Emerging technologiesEmerging technologies
Emerging technologiesSteve Feldman
 
Bb world 2011 capacity planning
Bb world 2011 capacity planningBb world 2011 capacity planning
Bb world 2011 capacity planningSteve Feldman
 
So Your Boss Wants You to Performance Test Blackboard
So Your Boss Wants You to Performance Test BlackboardSo Your Boss Wants You to Performance Test Blackboard
So Your Boss Wants You to Performance Test BlackboardSteve Feldman
 
Short reference architecture
Short reference architectureShort reference architecture
Short reference architectureSteve Feldman
 
Sfeldman bbworld 07_going_enterprise (1)
Sfeldman bbworld 07_going_enterprise (1)Sfeldman bbworld 07_going_enterprise (1)
Sfeldman bbworld 07_going_enterprise (1)Steve Feldman
 
Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07Steve Feldman
 
B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)Steve Feldman
 
Bb performance-engineering-toad
Bb performance-engineering-toadBb performance-engineering-toad
Bb performance-engineering-toadSteve Feldman
 
Bb performance-engineering-spotlight
Bb performance-engineering-spotlightBb performance-engineering-spotlight
Bb performance-engineering-spotlightSteve Feldman
 
Sun blackboardwp10 1_07
Sun blackboardwp10 1_07Sun blackboardwp10 1_07
Sun blackboardwp10 1_07Steve Feldman
 
Dell bb quest_wp_jan6
Dell bb quest_wp_jan6Dell bb quest_wp_jan6
Dell bb quest_wp_jan6Steve Feldman
 
Hied blackboard dell_whitepaper
Hied blackboard dell_whitepaperHied blackboard dell_whitepaper
Hied blackboard dell_whitepaperSteve Feldman
 
B2conference performance 2004
B2conference performance 2004B2conference performance 2004
B2conference performance 2004Steve Feldman
 
B2 2005 introduction_load_testing_blackboard_primer_draft
B2 2005 introduction_load_testing_blackboard_primer_draftB2 2005 introduction_load_testing_blackboard_primer_draft
B2 2005 introduction_load_testing_blackboard_primer_draftSteve Feldman
 
B2 2006 sizing_benchmarking
B2 2006 sizing_benchmarkingB2 2006 sizing_benchmarking
B2 2006 sizing_benchmarkingSteve Feldman
 
7.17 1130am adv.perform.forensics_bb
7.17 1130am adv.perform.forensics_bb7.17 1130am adv.perform.forensics_bb
7.17 1130am adv.perform.forensics_bbSteve Feldman
 

Mais de Steve Feldman (20)

Day 2 05 - steve feldman - logging matters
Day 2 05 - steve feldman - logging mattersDay 2 05 - steve feldman - logging matters
Day 2 05 - steve feldman - logging matters
 
3days september
3days september3days september
3days september
 
Emerging technologies
Emerging technologiesEmerging technologies
Emerging technologies
 
Bb sql serverdell
Bb sql serverdellBb sql serverdell
Bb sql serverdell
 
Bb world 2011 capacity planning
Bb world 2011 capacity planningBb world 2011 capacity planning
Bb world 2011 capacity planning
 
So Your Boss Wants You to Performance Test Blackboard
So Your Boss Wants You to Performance Test BlackboardSo Your Boss Wants You to Performance Test Blackboard
So Your Boss Wants You to Performance Test Blackboard
 
Short reference architecture
Short reference architectureShort reference architecture
Short reference architecture
 
Sfeldman bbworld 07_going_enterprise (1)
Sfeldman bbworld 07_going_enterprise (1)Sfeldman bbworld 07_going_enterprise (1)
Sfeldman bbworld 07_going_enterprise (1)
 
Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07Sfeldman performance bb_worldemea07
Sfeldman performance bb_worldemea07
 
Dell bb wp_final
Dell bb wp_finalDell bb wp_final
Dell bb wp_final
 
B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)B2 2006 sizing_benchmarking (1)
B2 2006 sizing_benchmarking (1)
 
Bb performance-engineering-toad
Bb performance-engineering-toadBb performance-engineering-toad
Bb performance-engineering-toad
 
Bb performance-engineering-spotlight
Bb performance-engineering-spotlightBb performance-engineering-spotlight
Bb performance-engineering-spotlight
 
Sun blackboardwp10 1_07
Sun blackboardwp10 1_07Sun blackboardwp10 1_07
Sun blackboardwp10 1_07
 
Dell bb quest_wp_jan6
Dell bb quest_wp_jan6Dell bb quest_wp_jan6
Dell bb quest_wp_jan6
 
Hied blackboard dell_whitepaper
Hied blackboard dell_whitepaperHied blackboard dell_whitepaper
Hied blackboard dell_whitepaper
 
B2conference performance 2004
B2conference performance 2004B2conference performance 2004
B2conference performance 2004
 
B2 2005 introduction_load_testing_blackboard_primer_draft
B2 2005 introduction_load_testing_blackboard_primer_draftB2 2005 introduction_load_testing_blackboard_primer_draft
B2 2005 introduction_load_testing_blackboard_primer_draft
 
B2 2006 sizing_benchmarking
B2 2006 sizing_benchmarkingB2 2006 sizing_benchmarking
B2 2006 sizing_benchmarking
 
7.17 1130am adv.perform.forensics_bb
7.17 1130am adv.perform.forensics_bb7.17 1130am adv.perform.forensics_bb
7.17 1130am adv.perform.forensics_bb
 

071410 sun a_1515_feldman_stephen

  • 1. Best Practices for Optimizing Blackboard Learn Steve Feldman, sfeldman@blackboard.com
  • 2. optimizing* The process of increasing speed (performance) and capacity (scalability) of a system and/or program.
  • 3.
  • 4. What We’ll Cover •  Deploy for performance from the start. •  Optimizing the platform components. •  Continuous measurements are absolutely critical.
  • 6. Flexible and Scalable Application Deployment
  • 7. Deployment: Large Address Space •  As of Blackboard Learn™ Release 9.1 all supported/ certified configurations include a 64-bit option. •  Pushing more processing to client and DB over the last few releases, but major memory management technique is to use more application caches. –  Memory stays persistent longer –  Less wasteful from a creation/destruction perspective, but puts greater demands on larger spaces. •  Most of our application testing focused on 4GB and 8GB JVM deployments on 6GB and 10GB OS spaces. –  Limited testing at 16GB and 32GB
  • 8. Deployment: Resource Utilization via Virtualization •  Moore’s law is in full effect –  CPUs are getting faster with more cores –  Memory is in abundance and cheap –  Storage is grossly abundant •  Massive systems can be obtained at low cost, but cannot be saturated in stand-alone configurations. •  Virtualization offers this opportunity… –  Deploy with availability in mind –  Saturate system resources –  Save money and data center space
  • 9.
  • 10. Deployment: Improving Page Responsiveness •  Gzip…Gzip…Gzip… –  All of our supported browsers handle gzip? –  Reduces payload •  Improves lower latency connections like Cable, DSL and Dial-up –  Minor overhead on the application layer (~2% to ~5%) •  Have the option to perform at the load-balancer layer –  Most Bb deployments do not enable Gzip at all •  Even when enabled, some proxies and software packages mess-up the Accept Encoding Header •  Optimize your images –  Page size really does matter –  Reduce the size without reducing the quality –  Smush.it, PunnyPng, OptiPng, RIOT and ImageOptim
  • 12.
  • 13. Tools for Page Performance •  Analysis Tools –  Independent tools: Fiddler, HTTPWatch, WebPageTest.org, Web Inspector (Mac), IE Developer Tools –  Browser Plugins: Firebug/YSlow, Google Page Speed, WebPageTest Client –  JavaScript tools: dynatrace, IE Developer Tools, •  Optimization Tools –  Image optimization to reduced overall size and metadata: SmushIt, PNGOptimize, PNGCrusher, OptiPng and graphicsoptimization.com •  http://yuiblog.com/blog/2008/10/29/imageopt-1/ –  CSS optimization to reduce unused elements and compress CSS of unnecessary white spaces: CSS Optimizer, CSS Compressor and CleanCSS
  • 14.
  • 15. Optimizing the Web Server •  The web server in the BbLearn configuration is nothing more than a gateway to the application container. –  When clusters were more relevant, the web server acted as a pseudo load-balancer. •  Not many opportunities for optimization other than –  KeepAlives –  Interfaces –  Compression •  It can become a bottleneck if not properly optimized –  Better to have high ceilings from an interface perspective
  • 16. Optimizing the JVM •  Java hotspot offers standard –X and non-standard –XX options for performance and behavior. –  -X options are always guaranteed across releases and patches of Java. –  -XX options must be used with caution as they are subject to change with any release of Java. •  -XX options should be tested and measured using the production safe arguments. –  Be careful of leveraging options you see on ListServes and Google •  Read the release notes of Java for “performance” updates –  http://java.sun.com/javase/6/webnotes/ReleaseNotes.html
  • 18. Optimizing the JVM •  Cross-platform recommendation for using Concurrent Mark Sweep Collector –  Best optimized for 64-bit address –  Combine –XX:+UseConcMarkSweepGCwith –XX:+UseParNewGC •  Manually size New Space using –XX:NewSize and – XX:MaxNewSize options (1/4 to 1/3 total heap). –  Consider Survivor Space ratios 4 or lower. •  Be careful about sharing –XX non-standard options across customers. –  If you don’t understand what the option does and it’s not recommended by Blackboard, best choice is to not use it. •  PermSpace and B2s –  Every B2 you add, make sure to measure PermSpace usage via tools like JStat and VerboseGC
  • 19. High Level Old Space Collection
  • 20. Prototyping JVM Arguments •  Wrapper.conf exists on both UNIX and Windows configurations for handling JVM arguments. •  Options can be tested out without a PushConfigUpdates by simply adding an additional line with –  wrapper.java.additional.<insert numeric sequence>= –  Simply issue a “./ ServiceController services.appserver.restart” to restart the JVM without arguments
  • 22. Tools for Java Instrumentation •  GC Log Analysis Tools: PrintGCStats, Jstat, GCViewer, •  Thread Analysis Tools: Samurai, JConsole, JavaVisualVM, •  Memory Analysis Tools: Eclipse Memory Analyzer, Jhat, •  Robust Commercial Tools: Quest Foglight, Oracle OEM, Dynatrace for Java, CA IntroScope •  Profiling Tools: Jprobe, YourKit, JProfiler
  • 23. Optimizing the Database: SQL Server •  # of data files makes no difference on SQL Server for Data and Transaction •  Allow the data/transaction files to grow as big as they want within reason. –  What’s reason: 64GB –  http://msdn.microsoft.com/en-us/library/ms143432(sql.90).aspx •  TempDB is completely different story –  # of files = # of DB Threads –  Set first X files to a uniform size, set last file to same size with auto-extension ON –  Determine size need over time •  Separate volume for paging file
  • 24. Optimizing the Database: SQL Server •  Be aware of MDOP: Max Degree of Parallelism –  Setting to unlimited can have a negative affect on query performance unintentionally. •  AWE can and does work on 64-bit systems •  Configure READ_COMMITTED_SNAPSHOT •  Two nuggets of information: –  Learn How to Use SQL DMVs –  Study SQL Server Wait Events and Tuning
  • 25. Optimizing the Database: Oracle •  Balance I/Os across multiple data files (~2 to 8GB per file). •  REDO is critical to performance a session/query level. –  Be aware of how much REDO is being used over time. –  NOLOGGING will disable, be we rarely use NOLOGGING •  TEMP is very complex and used for managing transient data. –  One TEMP file is adequate –  If latency exists on TEMP, consider introducing TEMP file groups •  SGA is important, but PGA can be your best friend or your worst enemy with high concurrency.
  • 26. Optimizing the Database: Oracle •  Oracle CBO can be your friend –  Must understand optimizer behavior –  Willingness to read Cost Execution Plans •  Using Wait Events and Cost Execution Plans for tuning initiatives –  Wait events are at a system, session and query level •  Importance of Statistics and Histograms –  CBO is just guessing without properly set statistics and histograms. –  CBO is dependent on your data.
  • 27. Approach to Understanding DB Performance •  Capture statements using some pre-identified tool –  Oracle AWR and ASH (Session Level) –  SQL Server Performance Dashboard and Performance Warehouse •  Review Instance Level Information to gain a cursory view of “system” performance. •  Deep dive into SQL Analysis –  Focus on Logical I/Os as starting point. •  Physical I/Os are important, but more often logical –  Drill into CPU consumers followed by executions –  Isolate physical and structural for over usage and possible locking conditions –  Question why executions, but 0 rows processed –  Importance of both: Histograms and Statistics •  Know your data better than your DBAs
  • 28.
  • 29. Please provide feedback for this session by emailing BbWorldFeedback@blackboard.com. The subject of the email should be title of this session: Best Practices for Optimizing Blackboard Learn