microsoft power point best practices for scaling heavily adopted and concurrent blackboard learn...
TRANSCRIPT
1
Did you all get a chance to read that? As a public company we need to have Vista is the only solution built from the ground up on true enterprise
2
our disclosure statement before all presentations. If you have any questions
on what it means please speak with our General Counsel.
Vista is the only solution built from the ground up on true enterprise
technology --- allowing you to ensure that you continue to provide your
faculty and students an outstanding experience
3
4
5
6
http://www.flickr.com/photos/mc-p/321147947/
7
8
9
10
In 32-bit world, made an argument for clustering. With rise of 64-bit, plus
greater stability with –XX options making a pitch away from clustering.
Almost not necessary with virtualization, larger heaps and load-balancing.
Becomes relevant again when we remove Web Server from architecture.
11
12
http://www.flickr.com/photos/8268257@N04/498871739/
13
14
15
Source: http://www.flickr.com/photos/t_squared/152270386/
17
18
Source: http://www.flickr.com/photos/yanivg/131377774/
19
20
Source: http://www.flickr.com/photos/ale2000/1275120868/
21
Complete list of –XX Options: http://sevenseconds.wordpress.com/2009/07/07/the-most-complete-list-of-
22
http://sevenseconds.wordpress.com/2009/07/07/the-most-complete-list-of-xx-options-for-java-6-jvm/
In our most recent benchmark we settled on a 4GB JVM and 1000
23
threads/interfaces. It was sufficient to support 5000+ active/live sessions
with exception response times (99% under 3s, 95% under 2s and 90% under
1s.). Latency vastly improved with aggressive –XX options. Below is an
example of options we use from our wrapper.conf:
# Initial Java Heap Size (in MB)
wrapper.java.initmemory=4g
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=4g
wrapper.java.additional.18=-Xloggc:C:/Bb/blackboard/logs/tomcat/gc.log
wrapper.java.additional.19=-XX:NewSize=1g
wrapper.java.additional.20=-XX:MaxNewSize=1g
wrapper.java.additional.21=-XX:+UseConcMarkSweepGC
wrapper.java.additional.22=-XX:+UseParNewGC
wrapper.java.additional.23=-XX:ParallelGCThreads=(set this equal to the
number of CPUs available for generational collections)
wrapper.java.additional.24=-XX:+PrintGCDetails
wrapper.java.additional.25=-XX:+PrintGCDateStamps
wrapper.java.additional.26=-XX:+AlwaysPreTouch
wrapper.java.additional.27=-XX:ParallelCMSThreads=(set this equal to the
24
25
26
Source: http://www.flickr.com/photos/80854523@N00/2925662718/
27
28
29
Easily configured Virtual Machine by cloning VMs using XenCenter
30
31
Toad is our primary database access tool. While we use SQLPlus for many
32
operations, Toad provides a robust, easy to use visual interface that we use
for script execution and basic DBA tasks. Many of the basic views that come
with Toad are helpful in quickly spotting issues such as misplaced indexes in
the wrong tablespaces, as well as viewing the size of tablespaces and data
files. We also use it for script execution of routine database maintenance
functions.
PAO (Performance Analysis for Oracle) is our primary monitoring and
instrumentation tool we use in Blackboard performance engineering. There
are many reasons for using the tool set, but our primary reason is the
warehousing capabilities. Our secondary reason for using the tool is the
ability to compare timelines. We can take a baseline of activity, make a
change to our configuration and perform a simple comparison of the
workloads.
Foglight is by far my absolute favorite performance instrumentation tool. We
use the Tomcat cartridge for Foglight primary as it’s a lightweight
instrumentation framework and imposes minimal overhead. I like a number
of aspects, but my favorite three are the following:
1. I love that I can define a simple rule engine to perform a trace of the
application code, including collecting SQL literals. Better yet, I can step into
the trace and do a fast find by exclusive time to see what method call or SQL
statement was responsible for consuming the most time.
33
34
35
36
37
38
39
40
41