Performance Assessment - Content Server 10
Performance Assessment - Content Server 10
Version: 10.0.0
Task/Topic: Performance
Audience: Administrators, Decision Makers
Platform: All
Document ID: 500113
Updated: October 7, 2011
White Paper
CHAMPION TOOLKIT
Document Title
Contents
Introduction .................................................................................................................4
Objectives ............................................................................................................... 4
Web Services Test Objectives ................................................................................... 5
Tests and Results ........................................................................................................ 6
CWS Tests .............................................................................................................. 6
1. Ingestion Isolated Operation Tests ..................................................................... 6
2. Ingestion Load Tests ............................................................................................ 7
3. Retrieval Isolated Operation Tests.................................................................... 13
4. Retrieval Load Tests ........................................................................................... 14
Web Services Test Summary ......................................................................... 19
Web User Interface Test Objectives ........................................................................ 20
Web User Interface Isolated Operation Test........................................................... 21
1. Browse Requests ............................................................................................... 22
2. Create Requests ................................................................................................. 23
3. Fetch Requests ................................................................................................... 24
4. Personal Menu Requests ................................................................................... 26
5. Function Menu Requests ................................................................................... 27
6. Search Requests ................................................................................................ 27
Summary .............................................................................................................. 32
Web User Interface Load Tests ................................................................................ 33
Method .................................................................................................................. 33
Load Test Results ................................................................................................. 34
Load Size Summary....................................................................................... 36
Throughput ..................................................................................................... 37
Execute and Response Times ....................................................................... 40
Resource Usage ............................................................................................ 44
Thread Usage .......................................................................................... 44
CPU Usage.............................................................................................. 47
Memory Usage ........................................................................................ 49
Load Test Summary ....................................................................................... 51
Stress Test Results......................................................................................... 52
Stress Test Content Server 9.7.1 ................................................................ 52
Throughput & Response Time................................................................. 52
Resource Usage ...................................................................................... 53
Response Time Correlation ..................................................................... 55
Stress Test Content Server 2010 ................................................................ 56
Throughput and Response Time ............................................................. 56
Resource Usage ...................................................................................... 56
Response Time Correlation Content Server 2010 ............................... 58
Stress Test Summary ..................................................................................... 59
Conclusion................................................................................................................. 61
TOGETHER, WE ARE THE CONTENT EXPERTS
CHAMPION TOOLKIT
Document Title
CHAMPION TOOLKIT
Document Title
Executive Summary
This paper describes the testing efforts undertaken by OpenText to determine the key
performance characteristics of Content Server 10.0 relative to those of Content
Server 9.7.1. Tests are broken down into Content Web Services ingestion and
retrieval tests, Web User Interface isolated operation, load, and stress tests.
Results of the Content Web Services ingestion load tests showed that even at eight
threads, Content Server 10.0 achieves 30% higher ingestion throughput than 9.7.1,
and a peak throughput of over 53 documents created per second at 40 threads. This
is more than three times the peak ingestion throughput of Content Server 9.7.1.
Though Content Server 10.0 exhibits almost double the Content Web Services
retrieval throughput of Content Server 9.7.1 while at the same number of threads (5),
the most significant difference occurs at peak throughput, where Content Server 10.0
achieves over 4 times the capacity of Content Server 9.7.1 (over 180 docs/second
in 10.0, compared to less than 40 docs/second in 9.7.1).
Results of the load tests of Content Server 9.7.1 and 10.0 in nearly identical
configurations show that Content Server 10.0 is able to deliver responses to a larger
volume of requests faster than Content Server 9.7.1. Coupled with the increased
scalability of threads, and address space available in a 64-bit process, a single
instance of Content Server 10.0 should be able to handle a significantly higher
volume of requests, and respond to them quicker, as compared to previous releases
of Content Server.
Results of the stress test showed that the software bottle-necks that prevented
Content Server 9.7.1 from using available hardware effectively have been removed
from Content Server 10.0, and that a single instance of Content Server 10.0 is able to
handle two and a half times the load of an instance of Content Server 9.7.1. By
virtually eliminating the need to install multiple instances on a single server (vertical
scaling), Content Server 10.0 significantly reduces the amount of effort needed to
administer larger scale deployments.
For the most part, results of these tests showed either no loss in performance, or
significant improvements to performance with Content Server 10.0. The most notable
areas of improvement in Content Server 10.0 include:
1.
2.
3.
4.
CHAMPION TOOLKIT
Document Title
Introduction
This paper describes the testing efforts undertaken by OpenText to determine the key
performance characteristics of Content Server 10.0 relative to those of Content
Server 9.7.1. For the most part, the same test method used in previous reports of this
type has been used for this release, with the addition of several new tests. The test
suite includes isolated operation tests, load tests, and web services ingestion and
retrieval tests.
Objectives
The objectives of these tests are to:
1. Quantify the difference in performance characteristics between the current
release of Content Server (10.0), and the previous release of Content Server
(9.7.1),
2. Highlight the performance improvements introduced in the current release of
Content Server (version 10.0).
As a result of these tests, we wish to know how the current release of Content Server
(10.0) performs for a variety of functions, compared to currently supported releases
of Content Server (9.7.1):
CHAMPION TOOLKIT
Document Title
CHAMPION TOOLKIT
Document Title
CWS Tests
The test is run by an open source test client called soapUI, which makes web service
requests through the Content Web Services (CWS) API. The time recorded by the
client is the time from when the request is submitted to CWS, until the entire
response is retrieved. During the test, summary timing logs are collected from
Content Server, and client timings are collected from the soapUI client.
The initial data set includes English and multilingual files sourced from Reuters news
feed documents and standard load test documents.
During these tests indexing was enabled, and distributed agents for facet calculation
were running. However, the throughput numbers presented below reflect only the
time taken to complete the web service calls to store the documents in CS. Indexing
and facet calculation are an asynchronous task that trails the ingestion, and will be
reported on in a future assessment.
1.
is
achieved
using
the
An initial test was done using one client thread in the soapUI test client; running 100
iterations of the createDocument scenario, to measure average create document
time under no load. The table below shows that in this no load scenario, the average
time to create a document in Content Server 10.0 is about 20 percent slower than in
CS 9.7.1.
Table 1: CWS Functional Test - Summary CreateDocument
CS 9.7.1
Content Server
10.0
100
100
235.12
279.68
Min (ms)
196
243
Max (ms)
362
351
20.54
24.98
Count
Average (ms)
Std Dev
% Difference
-18.9%
CHAMPION TOOLKIT
Document Title
Although this document creation time is slower in Content Server 10.0, there are new
features in Content Server 10.0 such as facets that create additional overhead for
this type of operation. Also, it is important to note that Content Server 10.0 is much
more scalable than 9.7.1 for this type of operation, as illustrated in the load test
section; when configured with 8 threads, Content Server 10.0 has 30 percent higher
throughput and can scale to many additional threads, further improving throughput
and overall performance.
Analysis of the CS summary timing logs from these tests shows a significantly higher
average number of SQL statements and total SQL execution time for Content Server
10.0 than CS 9.7.1. The table below shows average execution time, average SQL
execution time, and number of SQL statements for 9.7.1 and 10.0.
Table 2: CWS Functional Test - Execution Times Create Document
CS 9.7.1
% Difference
0.210
0.257
-0.047
0.032
0.043
-0.011
129
216
87
2.
Content Server
10.0
CHAMPION TOOLKIT
Document Title
Figure 1: CWS Load Test Ingestion - Throughput Content Server 10.0 vs. 9.7.1
CPU usage by the LLServer process is somewhat higher for Content Server 10.0
during the above test with 8 CS threads; this reflects the fact that Content Server
10.0 is processing more documents per second and so better utilizing the available
processing power. It also remains close to 10 percent for an extended period after the
test, which is a result of the new distributed agent processing facet data. The chart
below shows a comparison of CS 9.7.1 and 10.0 CPU usage.
CHAMPION TOOLKIT
Document Title
Figure 2: CWS Load Test Ingestion - Content Server Host CPU Usage
Memory usage by LLServer starts at a much higher level, and shows a much larger
increase during the Content Server 10.0 test, increasing by about 400MB, compared
to the minimal 30MB increase during the CS 9.7.1 ingestion. Note that about 1.5
hours after the test completed, Content Server 10.0 memory use decreased by about
100MB. The larger initial memory footprint is partly due to the Content Server 10.0
process being 64-bit (whereas 9.7.1 is 32-bit), and is also due to additional per
thread caching in Content Server 10.0. The chart below compares LLServer private
bytes memory usage for CS 9.7.1 and 10.0 during the 8 thread ingestion load test.
CHAMPION TOOLKIT
Document Title
SQL Server CPU usage is somewhat higher during the Content Server 10.0 test,
averaging around 18 percent, but with spikes as high as 50 percent. During the CS
971 test, SQL Server CPU usage was more consistently around 10-18 percent with
no spikes higher than 50 percent. Again, this reflects the fact that Content Server
10.0 is processing more documents per second, and that the additional features in
Content Server 10.0 mean that for each document, more SQL statements are
executed.
During an ingestion batch with 8 CS threads, CPU usage on the 10.0 Admin Server is
about twice as high as on the 9.7.1 Admin server. The chart below compares Admin
server CPU usage between the two CS versions. CPU usage continues on the Admin
server well after the ingestion has completed due to indexing of the ingested
documents; as mentioned earlier, further analysis of indexing will be provided in a
future assessment.
CHAMPION TOOLKIT
10
Document Title
Figure 4: CWS Load Test Ingestion - Admin Server Host CPU Usage
Memory usage is also higher on the Content Server 10.0 Admin server, with only
about 1GB available memory at the start of the test and remaining at that level
through the test. For CS 9.7.1, the Admin server starts with about 4.1 GB available;
this drops to about 3.9 GB by the end of the test. This is largely due to Content
Server 10.0 processes being 64-bit, and partly to additional features in Content
Server 10.0.
Additional Content Server ingestion batches were executed with CS threads
increased to 16, 24, 32, and 40. CPU usage on the CS server increases with each
test until it is about 75 percent for the 40 thread test. The chart below compares CS
CPU usage during these tests.
CHAMPION TOOLKIT
11
Document Title
Figure 5: CWS Load Test Ingestion - Content Server Host CPU Usage for Varying Thread Counts
As the CS thread count is increased, the increase in private bytes memory use by
LLServer also increases. For tests with more than 8 threads, there is also a large
jump in private bytes of 200 MB or more right at the start of the load test; the server is
configured for a minimum of 8 threads, so this jump is likely due to initialization of the
additional threads at the start of the test. As mentioned earlier, the increased memory
usage with additional CS threads is due to additional per thread caching in Content
Server 10.0.
CHAMPION TOOLKIT
12
Document Title
Figure 6: CWS Load Test Content Server Memory Usage for Varying Number of Threads
3.
CHAMPION TOOLKIT
13
Document Title
4.
Content Server
10.0
% Difference
getVersion
116.88
53.7
54%
getVersionContents
162.36
128.79
20%
Combined
279.24
182.49
35%
CHAMPION TOOLKIT
14
Document Title
Figure 7: CWS Load Test Retrieval Throughput Content Server 10.0 vs. 9.7.1
While Content Server 10.0 achieves much higher retrieval throughput than 9.7.1 with
the same number of threads, it does so with lower CPU usage. The chart below
shows a comparison of CS 9.7.1 and 10.0 CPU usage (overall CPU use on the
server which includes CS and CWS) for the test with 8 CS threads. During this 15
minute test, a total of 64,012 documents were retrieved from Content Server 10.0,
while 29,972 were retrieved from 9.7.1.
CHAMPION TOOLKIT
15
Document Title
Figure 8: CWS Load Test Retrieval Content Server Host CPU Usage
For Content Server 10.0, as the number of CS threads are increased, overall CPU
usage increases until it levels off around 70 percent during a test with 40 CS threads.
The chart below illustrates overall CPU usage on the CS server for tests from 5 to 40
threads.
Figure 9: CWS Load Test Retrieval Content Server CPU Usage for Varying Number of Threads
CHAMPION TOOLKIT
16
Document Title
Memory usage by LLServer starts at a much higher level, and shows a larger
increase during the Content Server 10.0 test, increasing by about 40 MB, compared
to the minimal 4 MB increase during the CS 9.7.1 15 minute retrieval test. As
described in the ingestion section, the larger initial Content Server 10.0 memory
footprint is due to it being 64-bit, and to additional per thread caching in Content
Server 10.0. The chart below compares LLServer private bytes memory usage for CS
9.7.1 and 10.0 during the 8 thread ingestion load test.
Figure 10: CWS Load Test Retrieval Content Server Memory Usage
As expected, the increase in Content Server 10.0 private bytes is larger during tests
with more CS threads, where a larger number of documents were retrieved. Also,
similar to the ingestion tests, for tests with more than 8 CS threads (where min
threads was still set to 8), there is a large increase in LLServer private bytes right at
the start of the test that is likely due to initialization of the additional threads. The
table below illustrates the increase in private bytes for retrieval tests with different
numbers of CS threads, and also includes the number of items that were retrieved
during the test.
CHAMPION TOOLKIT
17
Document Title
Start
End
Change
# Retrieved
713
738
25
36783
785
825
40
64012
16
955
1031
76
112404
24
1121
1224
103
145063
32
1292
1414
122
166214
40
1455
1589
134
171699
During the retrieval tests, CPU usage on the SQL Server is minimal. The chart below
compares SQL Server CPU usage between Content Server 10.0 and 9.7.1 for the 8
thread retrieval test; both are typically below 5 percent. CPU usage during the 10.0
test is 1-2 percent higher than during the 9.7.1 test.
Figure 11: CWS Load Test Retrieval SQL Server Host CPU Usage
CHAMPION TOOLKIT
18
Document Title
CHAMPION TOOLKIT
19
Document Title
CHAMPION TOOLKIT
20
Document Title
Browsing
Creating Objects
Fetching Documents
Personal Menu Items
Function Menus
Searching
The test is run by a proprietary test client that makes HTTP requests to the server.
The time recorded by the client is the time from when the request is submitted to the
web server, until the entire response has been received. Timing logs from both
Content Server and the test client are collected after the test. A typical sequence of
steps taken when processing a web request can include:
1. The browser client performs a DNS lookup of the server name and sends the
request to the web server.
2. The web server receives the request, starts the gateway (CGI/ISAPI/Servlet), and
the gateway forwards the request to Content Server.
3. Content Server executes the request, and returns the response to the gateway.
4. The gateway receives the response from the server, and forwards it to the
browser client.
5. The browser parses the response, executes JavaScript, and renders the final
page.
CHAMPION TOOLKIT
21
Document Title
The Server Time (depicted in blue) is recorded as the Execute Time in summary
timing logs. The Client Time (from the start of the request until the end of the
response) is recorded in the logs of the test client. Non-Server Time (depicted in red)
is the Client Time minus the Server Time.
1.
Browse Requests
Accounting for roughly 60 percent of all requests issued to most Content Server
instances, browse is by far the most common activity. As browse is usually a part of
any task a user wishes to perform, poor browse performance makes many aspects of
TOGETHER, WE ARE THE CONTENT EXPERTS
CHAMPION TOOLKIT
22
Document Title
the system appear slow. Conversely, if browse is fast, many tasks a user performs
seem faster.
Figure 13 shows the average Server Time, and Non-Server Time for browse requests
of various sizes on Content Server 9.7.1 and 10.0.
2.
Create Requests
The Add: object page is where users fill out the name, description, and other
properties needed to create objects of a given type.
Figure 14 shows the average Server Time, and Non-Server Time for create requests
of various object types in Content Server 9.7.1 and 10.0.
CHAMPION TOOLKIT
23
Document Title
These results show that Content Server 10.0 is able to deliver the Create pages for
objects significantly faster than Content Server 9.7.1. They also show that much of
this difference is due to a change in execute time within the server.
3.
Fetch Requests
Figure 15 shows the average Server Time, and Non-Server Time to fetch documents
of various sizes up to 1 GB on Content Server 10.0 and 9.7.1. Note the logarithmic
scale on both the Document Size and Time axis (a log-log scale).
CHAMPION TOOLKIT
24
Document Title
These results show a constant base time to execute fetch requests, for documents
up to ~1 MB, and a linear increase in time fetching documents greater than ~1MB.
CHAMPION TOOLKIT
25
Document Title
4.
Figure 15: Execute & Response Times for Personal Menu Requests
These results show a significant reduction in the amount of time needed to execute
these personal menu requests within the server, and a slight increase in the amount
of time needed to process these requests in the CGI. The overall effect is a slight
decrease in the time needed to deliver responses to these requests to the client.
CHAMPION TOOLKIT
26
Document Title
5.
Figure 16: Execute & Response Times for Function Menu Requests
These results show a dramatic decrease (50ms vs. 325ms, or ~6.5x) in the time
needed to execute Function menu requests in Content Server 10.0, as compared to
Content Server 9.7.1. The overall effect is that Content Server 10.0 is able to deliver
responses to Function menu requests to the client significantly faster (150ms vs.
450ms, ~3x) than Content Server 9.7.1.
6.
Search Requests
There are a several parameters that may affect the performance of search requests.
One is the number of terms in the query, and another is the type of operator used.
For this test, we examined six sets of keywords (pulled at random from the keywords
associated with documents) presented in three different ways: a simple token query,
and right or left-truncation versions of the same queries.
CHAMPION TOOLKIT
27
Document Title
privata alternativ
*vata alternativ
privata alterna*
aktie andra kvartalet
*ie andra kvartalet
aktie andra kvarta*
fr arbetare inom privat sektor kade
*r arbetare inom privat sektor kade
fr arbetare inom privat sektor k*
att kronan kommer att
*tt kronan kommer att
att kronan kommer at*
vid kp frn
*id kp frn
vid kp fr*
skriver intentia
*iver intentia
skriver inten*
Queries 1, 4, 7, 10, 13, and 16 are the token queries; queries 2, 5, 8, 11, and 17 are
the same sets of tokens, with one of them left-truncated; queries 3, 6, 9, 12, 15, and
18 are the token queries with one of the tokens right-truncated.
CHAMPION TOOLKIT
28
Document Title
Figure 18 shows the response times for the same token queries on 9.7.1 and 10.0.
These results show that Content Server 10.0 is able to respond to simple tokenbased search requests significantly faster than 9.7.1, and that the response time
doesnt seem to be affected by the number of terms in the query, as it did in 9.7.1.
CHAMPION TOOLKIT
29
Document Title
Figure 19 shows the response times for the same right-truncation queries on 9.7.1
and 10.0.
These results show that Content Server 10.0 responds to right-truncation search
queries significantly faster than 9.7.1, though both seem to be affected by the number
of terms in the query.
CHAMPION TOOLKIT
30
Document Title
Figure 20 shows the response times for the same left-truncation queries on 9.7.1 and
10.0.
These results show that, for the most part, Content Server 10.0 performs as well as
or faster than 9.7.1, and that the difference increases as the number of terms
increases.
CHAMPION TOOLKIT
31
Document Title
Summary
The Web User Interface Isolated Operation Tests tested the performance of several
user requests through the web interface. These tests were executed in isolation
(requests run one-at-a-time, with no other load on the server) in order to determine
the effect of changes to these functions on their performance, independent of any
other factors.
Overall, these tests showed a slight decrease in performance for download requests,
a slight increase in performance for browse and personal menu requests, and
significant improvements to performance for create, Functions menu, and search
requests.
CHAMPION TOOLKIT
32
Document Title
Method
The software is loaded until it peaks at less than 50 percent of the available hardware
bandwidth (CPU, Disk, Network), for a period of three hours. This simulates an
extended typical peak hour of usage.
As with previous versions, the load test uses WebLoad 1 to simulate several
concurrent clients. However, the way WebLoad is used to generate requests has
changed from previous tests.
In previous tests, relatively few load generators would be used (three load generators
were used for the 9.7.1 test). Each load generator would run a random request, as a
random user, as quickly as possible back-to-back. Each load generation client would
select a mix of requests that is designed to simulate normal usage. However, this test
setup resulted in a maximum of three concurrent requests at any time, and unrealistic
user behavior.
CHAMPION TOOLKIT
33
Document Title
For the Content Server 10.0 tests, each load generator now behaves like a virtual
user. The load generator loads an agenda, which mimics the way a user might
perform a particular operation.
For example, when running the fetch agenda, the load generator selects a random
document and a random user, then logs on, browses the Enterprise Workspace,
browses the folder tree down to the document, clicks the Functions menu for the
document, fetches the document, and finally logs off.
Between each of these steps is a delay that represents the browser parsing and
rendering the response, and the user deciding what link to click next (the thinktime). After this set of steps, the load generator sleeps for a while (the pace-time),
simulating a user working with the document.
Overall, the result is that the tests more accurately simulate the way users would be
expected to use Content Server, so as to better simulate how Content Server can be
expected to perform under realistic load patterns.
CHAMPION TOOLKIT
34
Document Title
Figure 21 shows the logical configuration of machines used for this test.
Load Monitor
& Controller
Database
Server
Content Server
Front-End
Search
Server
CHAMPION TOOLKIT
35
Document Title
The test starts by ramping up approximately 12 load generators every minute until
440 load generators have been started. Delaying the load generator start-ups helps
to de-synchronize the virtual users.
CHAMPION TOOLKIT
36
Document Title
Throughput
One aspect of performance is throughput. Throughput is concerned with the total
volume of work; it is a measure of how much work can be done in a given amount of
time.
Figure 23: Client-Side Throughput, 9.7.1 & 10.0 - 8 Threads shows the throughput in
pages per second, as measured in the load generation software over the duration of
the test. A page is an explicit request to the Content Server gateway (livelink.exe)
by the load test script, and does not include references to the /support/ directory
mapping.
CHAMPION TOOLKIT
37
Document Title
Table 5 represents a summary of the data as depicted in Figure 23 for the peak user
load (excluding the periods of ramp-up/ramp-down).
Table 5: Client-Side Throughput, 9.7.1 & 10.0 - 8 Threads
Name
Min
Max
Average
Stdev
4.165
440.00
387.89
113.23
5.414
440.00
388.11
112.66
13.40
21.9
17.713
1.578
11.95
19.1
14.998
1.253
Figure 23: Client-Side Throughput, 9.7.1 & 10.0 - 8 Threads shows that the two tests
(against 9.7.1 and 10.0) use the same configuration of load generators (up to 440
virtual users during the peak), but that there are fewer requests being delivered to the
10.0 instance than to the 9.7.1 instance.
In Content Server 9.7.1, and earlier, logon requests, and requests to browse a folder
with a customview were served by redirecting the user to the desired URL. This
redirect results in two requests being generated for a single user action. In Content
Server 10.0, this behavior has been changed so that the final link is presented to the
user, and the redirects on logon and customview browse are no longer required. The
result of these changes is a significant reduction on the number of requests made to
the server.
Figure 24: Server-Side Throughput, 9.7.1 & 10.0 - 8 Threads shows the throughput,
in transactions per second, as measured from Content Server summary timing logs.
CHAMPION TOOLKIT
38
Document Title
Figure 24: Server-Side Throughput, 9.7.1 & 10.0 - 8 Threads shows that there is little
difference in throughput during the duration of the tests for the 9.7.1 and 10.0
releases.
CHAMPION TOOLKIT
39
Document Title
CHAMPION TOOLKIT
40
Document Title
Table 6 represents a summary of the data as depicted in Figure 20 for the peak user
load (excluding the periods of ramp-up/ramp-down).
Min
Max
4.165
440.00
387.89
113.23
5.414
440.00
388.11
112.66
0.264
0.885
0.375
0.059
0.304
0.795
0.429
0.073
Average
Stdev
These results show that Content Server 10.0 delivers pages to the end-user slightly
slower than 9.7.1 at this level of load, on average. However, it should be noted that
the difference in mean execute time between the two tests (54ms) is smaller than the
variation within the 9.7.1 test alone (where the standard deviation is 59ms). Both
versions still deliver the majority of requests in well under a second, and the stress
test in the next section, Figure 44, shows that Content Server 10.0 is able to maintain
consistently good response times to a much higher level of load than Content Server
9.7.1.
CHAMPION TOOLKIT
41
Document Title
Figure 26 shows the server-side execute time of requests over time for both 9.7.1
and 10.0.
These results show a significant rise in execute time on 9.7.1 during the ramp-up
period, a steady-state with most requests taking 200 milliseconds to execute during
the body of the test, and a corresponding drop off in execute time at the end of the
test as load decreases.
The 10.0 results show a very slight increase in execute time as load is increased,
achieving steady-state at ~150ms per request throughout the duration of the test,
except for a couple of spikes nearing the mean execute time for 9.7.1 of 200
milliseconds. The steady-state execute time on Content Server 10.0 is approximately
one-third faster than 9.7.1, for the same volume of requests.
Another way of looking at execute times is to show what proportion of requests are
completed in less than a given time. Figure 27 presents the execute time data in this
manner.
CHAMPION TOOLKIT
42
Document Title
Figure 26: Server-Side Execute Time CFD, 9.7.1 & 10.0u3 - 8 Threads
These results show that Content Server 10.0 is able to execute far more requests
faster than Content Server 9.7.1. Table 7 shows time under which the given
proportion of requests were executed in the 9.7.1 and 10.0 tests.
Table 7: Execute Time Percentiles - 9.7.1 & 10.0u3
Execute Time
(seconds)
Percentile
90%
95%
99%
9.7.1
10.0
0.6
0.3
0.85
0.45
1.15
1.05
From this table, we can see that Content Server 10.0 executes 95 percent of
requests almost twice as fast as 9.7.1, at the same level of load.
CHAMPION TOOLKIT
43
Document Title
Resource Usage
Resource usage is another important aspect of the performance of a system. A
shortage of one or more resources can dramatically affect the performance of a
system. Comparing the resource usage of two versions of a system under load can
help anticipate changes to the resource usage behavior of their system after
upgrade. This can help administrators to plan for extra resources that may be
needed, and possibly reduce the use of resources that arent required.
A typical Content Server deployment makes use of a large variety of resources.
However, bottlenecks typically occur only in a handful of areas. The most common
resources to become bottlenecks on front-end servers are:
1.
2.
3.
4.
Here we compare usage for each of these resources in the 9.7.1 and 10.0 load tests.
Thread Usage
One of the most common areas to become a bottleneck in a front-end deployment is
the number of worker threads. Unfortunately, determining the number of threads
needed for a given increase in load is not linear in Content Server 9.7.1. As more
requests come in, contention between threads within the engine increases, further
increasing the number of threads consumed. This effect can be seen clearly in a plot
of thread usage vs. load.
Figure 28 shows an example of this behavior on Content Server 9.7.1. The test
delivered a varying amount of load to the server, and observed how many threads
TOGETHER, WE ARE THE CONTENT EXPERTS
CHAMPION TOOLKIT
44
Document Title
were consumed servicing the load. Doubling the load from ~2Tx/s to ~4Tx/s resulted
in a roughly linear increase in thread usage, from one to two threads. However,
increasing the load from ~4Tx/s to ~6Tx/s resulted in an increase in usage of 1.5
threads; and increasing the load from ~6Tx/s to ~8Tx/s resulted in more than
doubling the thread usage (from 3.5 to 8).
Figure 29 shows similar thread usage vs. throughput data for a late beta build of
Content Server 10.0.
These results show a much more linear increase in thread usage in Content Server
10.0. Given sufficient hardware to run the threads, this allows Content Server 10.0 to
scale to a much larger number of threads, without significant degradation in
performance. Coupled with a 64-bit address space, this will allow administrators to
run a much larger number of threads in a single instance, reducing the number of
instances needed to service a given level of load.
CHAMPION TOOLKIT
45
Document Title
Figure 30 shows the thread usage over the duration of the load tests.
This thread usage data shows that, for the same level and pattern of load, Content
Server 10.0 exhibits significantly lower thread usage than Content Server 9.7.1. With
the linear increase in thread usage vs. load presented earlier, this tells us that
Content Server 10.0 should able to handle 25 percent more load than 9.7.1 at 8
threads, and the load handling capacity of the server should continue to increase well
beyond 8 threads.
CHAMPION TOOLKIT
46
Document Title
CPU Usage
Historically, Content Server is a CPU intensive application. So, another important
resource in Content Server deployments is CPU usage, both on the front-end
servers, and on the database server. Figure 31 shows the CPU usage over time for
both 9.7.1 and 10.0 from the eight thread test.
Figure 30: Front-End Server CPU Usage - 9.7.1 & 10.0 - 8 Threads
Table 8 represents a summary of the data as depicted in Figure 31 for the peak user
load (excluding the periods of ramp-up/ramp-down).
Table 8: Front-End Server CPU Usage - 9.7.1 & 10.0 - 8 Threads
Name
Min
Max
Average
Stdev
4.165
440.00
387.89
113.23
5.414
440.00
388.11
112.66
21.659
41.705
30.042
3.352
13.11
23.625
17.519
1.761
CHAMPION TOOLKIT
47
Document Title
This chart/table shows that Content Server 10.0 uses significantly less CPU on the
front-end server, while servicing the same volume of requests.
The average front-end CPU usage during these tests shows that Content Server 10.0
consumes roughly 40 percent less CPU time than 9.7.1 consumes, for the same level
of user load.
Another important aspect of resource usage in Content Server is the CPU usage on
the database server. With Content Server instances that service user requests, it is
relatively easy and inexpensive to add more front-end instances to handle additional
user load. However, scaling up a database server to handle the additional load due to
an increase in user requests, either by upgrading the hardware in an existing
instance, replacing it with a larger system, or scaling out by clustering the database
are all expensive propositions.
Figure 32 shows the CPU usage on the database server during the load tests.
CHAMPION TOOLKIT
48
Document Title
Table 9 represents a summary of the data as depicted in Figure 32 for the peak user
load (excluding the periods of ramp-up/ramp-down.
Table 9: DB Server CPU Usage - 9.7.1 & 10.0 - 8 Threads
Name
Min
Max
Average
Stdev
4.165
440.00
387.89
113.23
5.414
440.00
388.11
112.66
5.728
12.97
8.616
1.246
9.485
78.154
41.799
14.284
These results show that Content Server 10.0 requires roughly 40 percent more CPU
time on the database server, as compared to 9.7.1. However, much of this increase
in load on the database server is attributable to background tasks performed by the
distributed agent, rather than front-end load. As will be seen in Figure 42 of the
stress test, this usage does not increase linearly with the amount of load on the
database server.
Memory Usage
A third key aspect of performance is the memory usage of the process. Content
Server 9.7.1 only ships as a 32-bit process, limiting its address space to 2 GB or 4
GB. Memory usage was one of the major factors limiting the number of threads a
given process could run (that, along with a lack of increase in throughput beyond
roughly eight threads).
Content Server 10.0 is a native 64-bit process, so does not have the same address
space limit as 9.7.1 (16TB/18EB depending on the host operating system). Figure 33
shows the memory usage of the llserver process on the front-end server during these
tests.
CHAMPION TOOLKIT
49
Document Title
Figure 32: Front-End Server memory Usage - 9.7.1 & 10.0 - 8 Threads
Table 10 summarizes the data as depicted in Figure 33 for the peak user load
(excluding the periods of ramp-up/ramp-down).
Table 10: Front-End Server memory Usage - 9.7.1 & 10.0 - 8 Threads
Name
Min
Max
Average
Stdev
4.165
440.00
387.89
113.23
5.414
440.00
388.11
112.66
397,788,770
414,453,760
408,259,474
3,508,463
752,543,740
793,937,920
777,932,181
11,073,164
These results show that Content Server 10.0 uses roughly twice as much memory as
Content Server 9.7.1, in the same configuration. While this may seem high, recall that
this configuration of Content Server 10.0 can handle significantly more load than
Content Server 9.7.1 in the same configuration (see Figure 30: Server-Side Thread
Usage, 9.7.1 & 10.0 - 8 Threads). Overall, the result is that Content Server 10.0 uses
roughly the same amount of memory needed to handle a given volume of load.
CHAMPION TOOLKIT
50
Document Title
CHAMPION TOOLKIT
51
Document Title
This result shows a fairly constant page time of less than one second for the first two
and a half hours of the test, then a steady climb in response time after that point.
Similarly, the amount of throughput the server can handle increases linearly up to
about 25 pages per second, at which point increasing load doesnt result in any gain
in throughput. So, the peak load capacity of Content Server 9.7.1, in this
configuration, with this mix of requests, is roughly 27 transactions per second.
The next step is to determine whether or not this limitation is caused by a resource
bottleneck on the hardware used to host the test, or by some limitation in the
software.
TOGETHER, WE ARE THE CONTENT EXPERTS
CHAMPION TOOLKIT
52
Document Title
Resource Usage
Resource usage is another important aspect of the performance of a system. A
shortage of one or more resources can dramatically affect the performance of a
system.
For this test, we compare performance measurements taken at each of the servers
under test to thresholds set by the load generator software to detect common
resource shortage issues. The thresholds the software monitors are:
Any of these conditions will generate highlights on the corresponding chart, yellow for
just past the threshold, red for significantly past the threshold.
Figure 35 shows the front-end server resource usage for the Content Server 9.7.1
stress test.
These results show a peak CPU usage on the front-end server of ~55 percent, peak
privileged mode CPU usage of ~15 percent, minimum disk idle time of ~400 percent,
and minimum available memory of ~15GB. These levels did not trigger any threshold
violations, indicating that the throughput of this test was not constrained by hardware
resources on the front-end server.
Figure 36 shows the back-end server resource usage for the Content Server 9.7.1
stress test.
CHAMPION TOOLKIT
53
Document Title
These results show peak CPU usage of ~30 percent, peak privileged mode CPU
usage of ~1 percent, minimum disk idle time of ~300 percent, and minimum available
memory of ~10.5GB. These levels did not trigger any threshold violations, indicating
that the throughput of this test was not constrained by hardware resources on the
back-end server.
Figure 37 shows the database server resource usage for the Content Server 9.7.1
stress test.
These results show peak CPU usage of ~7 percent, peak privileged mode CPU
usage of ~2 percent, minimum disk idle time of 63 percent, and minimum available
memory of ~11.3GB. These levels did not trigger any threshold violations, indicating
that the throughput of this test was not constrained by hardware resources on the
database server.
CHAMPION TOOLKIT
54
Document Title
Overall, the resource usage levels on all servers involved in the test were well within
the limits defined, indicating that the limitation on throughput was not caused by any
resource constraints in the environment, but most likely by some limitation of the
software.
Response Time Correlation
In order to isolate the most likely cause of the degradation in page time, we present
the page time (in black), the llserver virtual memory size (in dark green) with the top
five measurements that most closely correlate to the page time:
1.
2.
3.
4.
5.
The results in Figure 38 show the top five measurements that most closely correlate
to the page time for the 9.7.1 stress test. Of these, the Percent Committed Bytes in
Use from the front-end server matches the page time almost exactly.
From about 30 minutes into the test, until two and a half hours into the test, the virtual
memory size and % Committed Bytes in Use stay relatively constant. At two and a
half hours into the test, the virtual memory space allocated to the server increases,
but the proportion of memory actually in use stays relatively constant.
By three hours into the test, both the proportion of memory in use, and the time to
deliver pages starts increasing. By four hours into the test, the virtual memory size is
just shy of 2 GB (the upper limit for a 32-bit process on Windows), so the server
cannot increase the amount of virtual memory (which would decrease the % of
Committed Bytes in Use).
CHAMPION TOOLKIT
55
Document Title
These results show that Content Server 10.0 delivers pages consistently in less than
one second for the first six hours of the test. At this point, response time starts to
become more inconsistent as load is increased.
The next step is to examine resource usage on the servers to see if there are any
resource limitations that may be contributing to this behavior.
Resource Usage
As with the 9.7.1 stress test, we compare performance measurements taken at each
of the servers under test to thresholds set by the load generator software to detect
common resource shortage issues. The thresholds the software monitors are:
Any of these conditions will generate highlights on the corresponding chart, yellow for
just past the threshold, red for significantly past the threshold.
Figure 40 shows the resource usage on the front-end server during the stress test on
Content Server 10.0, update 3.
CHAMPION TOOLKIT
56
Document Title
These results start to show a warning around six and a half hours into the test, which
persists until the end of the test. The particular threshold that was triggered is the
High Privileged Mode CPU Activity (privileged mode CPU usage > 30 percent and
total CPU usage > 50 percent). Neither the amount of available memory nor the
proportion of time the disk is idle triggered warnings in this test.
This corresponds roughly to the period where page time starts to deteriorate,
however, the CPU usage increases very gradually during the test, while page time
fluctuates significantly during the test. This indicates that privileged mode CPU usage
on the front-end server may be contributing to increased page time, but that it is not
likely the primary cause of the fluctuating page times near the end of the test.
Figure 41 shows the resource usage on the back-end server during the stress test on
Content Server 10.0.
CHAMPION TOOLKIT
57
Document Title
These results show peak CPU usage of ~30 percent, peak privileged mode CPU
usage of ~5 percent, minimum disk idle time of ~350 percent, and minimum available
memory of ~8 GB. These levels did not trigger any threshold violations, indicating
that the throughput of this test was not constrained by hardware resources on the
back-end server.
Figure 42 shows the database server resource usage for the Content Server 10.0
stress test.
The total CPU usage on the database server during the Content Server 10.0 stress
test is significantly higher than during the test on 9.7.1. Much of this increased CPU
usage is due to keeping facet counts up to date as content is added to the system.
While there are several CPU usage warnings (>80 percent) triggered throughout the
test, these do not correspond directly to periods of poor response times.
However, the periods where CPU usage exceeds 90 percent correspond very closely
to the spikes in page time observed in Figure 39.
Response Time Correlation Content Server 10.0
Figure 43 shows the page time (in black) and front-end llserver process virtual
memory usage (dark blue) with the top five measurements that correlate most closely
to the page time:
1.
2.
3.
4.
5.
CHAMPION TOOLKIT
58
Document Title
These results show that the amount of available and committed memory on the frontend and database servers were most closely related to the increased response times
in this test, and CPU usage on the database server was also likely to have
contributed to this decrease in response time at the maximum load.
CHAMPION TOOLKIT
59
Document Title
The results of the 9.7.1 stress test showed subsecond response times until about two
and a half hours into the test. However, after this point, response time increases very
quickly as load is added to the system. The lack of any hardware bottlenecks
indicates that this is a limitation of the software. Many customers address this
bottleneck by installing multiple instance of Content Server 9.7.1 on a single server
(vertical scaling), but this significantly increases the effort needed to administer a
Content Server environment.
The results of the 10.0 stress test showed subsecond response times until roughly
six hours into the test, at two and a half times the user load of 9.7.1. While response
times do increase at times beyond this point, they do not show the same linear
degradation that was present in the 9.7.1 stress test, and there are clear indications
of hardware bottle-necks.
The ability to have a single instance of Content Server 10.0 make use of whatever
hardware resources are available (virtually eliminating the need for vertical scaling),
significantly reduces the amount of effort needed to administer the environment.
Having server resources clearly indicate when there is likely to be degradation in
response time makes it easier for administrators to identify and address potential
performance issues in a Content Server environment before they become an issue
for users.
CHAMPION TOOLKIT
60
Document Title
Conclusion
The objectives of the Web Services Tests were to compare the throughput and
performance of ingesting and retrieving documents through Content Web Services
between Content Server 10.0 and Content Server 9.7.1. These tests were broken
down into Isolated Operation Tests, and Load Tests.
Results of the Web Services Isolated Operation Tests showed a significant decrease
in the performance of creating a document through Content Web Services in Content
Server 10.0 as compared to Content Server 9.7.1 (~-19 percent), and a significant
increase in performance when retrieving a document (~35 percent).
While ingestion of a single document through Content Web Services is slower in
Content Server 10.0, results of the Content Web Services load tests showed that
even at eight threads, Content Server 10.0 achieves 30 percent higher ingestion
throughput than 9.7.1, and a peak throughput of over 54 documents created per
second at 40 threads. This is more than three times the peak ingestion throughput of
Content Server 9.7.1.
The improvements to Content Web Services retrieval performance in isolation are
even more pronounced under load. While at the same number of threads (5), Content
Server 10.0 exhibits almost double the retrieval throughput of Content Server 9.7.1,
the most significant difference occurs at peak throughput, where Content Server 10.0
achieves over 4 and a half times the capacity of Content Server 9.7.1 (over 180
docs/second in 10.0, compared to less than 40 docs/second in 9.7.1).
Objectives of the Web U/I tests were to observe how Content Server 10.0 behaves
under an extended period of load, as compared to Content Server 9.7.1, and at what
level of load the two versions start to show a degradation in response time.
Results of the load test showed that Content Server 10.0 is able to deliver responses
to a larger volume of requests faster than Content Server 9.7.1. Results of the stress
test showed that the software bottlenecks that prevented Content Server 9.7.1 from
using available hardware effectively have been removed from Content Server 10.0,
and that a single instance of Content Server 10.0 is able to handle two and a half
times the load of an instance of Content Server 9.7.1. By virtually eliminating the
need to install multiple instances on a single server (vertical scaling), Content Server
10.0 significantly reduces the amount of effort needed to administer larger scale
deployments.
For the most part, results of these tests showed either no loss in performance, or
significant improvements to performance with Content Server 10.0. The most notable
areas of improvement in Content Server 10.0 include:
5.
6.
7.
8.
CHAMPION TOOLKIT
61
Document Title
SQL 2008
Hitachi SAN
Index Partitions
Oracle 10
WLIBM3BL02
OTSM18-08
CHAMPION TOOLKIT
62
Document Title
EFS Storage
Admin Server
Index
Storage
SQL Server
Load Client
Make
IBM
Sun
IBM
Hitachi
IBM
IBM
Model
System
7870AC1
7410
Storage
eServer
BladeCentre
HS21
8853C2U
AMS 200
SAN
System X
7870AC1
System X
7870AC1
Processor
s
2 x E5530 Quad
Core 2.4Ghz
2 x Quad
Core AMD
Opteron
2.3GHz
2 x Xeon
E5345 Quad
Core
2.33GHz
2 x E5530
Quad Core
2.4Ghz
2 x E5530
Quad Core
2.4Ghz
Memory
20GB
16GB
10GB
1GB
Cache
20GB
20GB
Network
Broadcom
BCM5709S
NetXtreme
GigE
1Gbps
Broadcom
BCM5708S
NetXtreme II
GigE
1Gbps
SAN
Broadcom
BCM5709S
NetXtreme
II GigE
Broadcom
BCM5709S
NetXtreme II
GigE
5
x
132GB
(RAID 0)
2 x 136 GB
SCSI 4 x
146GB FC
RAID 0
2 x 136 GB
SCSI 2
Disk
2 x 136
SCSI
II
GB
11 Seagate
ST31000
NSSUN1.O
T
932GB
(750GB
assigned)
CHAMPION TOOLKIT
63
Document Title
Sessions
Table 13: CS10.0 update 3 Web User Interface and Stress Tests
Content Server 10.0 update 3 Web User Interface and Stress Tests
sockserv;javaserver, running on front-end server, all other agents running on back-end server
Index processes were stopped during these tests.
search partition max content disk size changed from default 5 GB to 50 GB (LPAD-23715).
Patches
Search/
Indexing
After ingestion batch 2, patch to fix long recommender agent query with many new items
After ingestion batch 3, search partition max content disk size changed from default 5 GB to 50
GB (LPAD-23715).
Ingestion batches 1-5 run with 4 index partitions, 6-10 run with 6 partitions.
Ingestion tests run with only index processes running, search processes stopped.
Retrieval tests run with only search processes running, index processes stopped.
CHAMPION TOOLKIT
64
Document Title
Patches
CHAMPION TOOLKIT
65
Document Title
Appendix D: Data-Sets
This section describes the data sets used during testing.
1k.txt
1 kb
10k.txt
10 kb
100k.txt
100 kb
1m.txt
1000 kb
10m.txt
10 mb
100m.txt
98 mb
1g.txt
977 mb
CHAMPION TOOLKIT
66
Document Title
Data Type
Length
Max. Rows
Count
Category Name 2
1,277,951
Title
Text: Field
254
1,277,951
Headline
Text: Field
254
1,277,951
Byline
Text: Field
254
1,277,951
Dateline
Text: Field
254
1,277,951
Copyright
Text: Field
64
1,277,951
Date Created
Date: Field
N/A
1,277,951
Publisher
Text: Field
64
1,277,951
Date Published
Date: Field
N/A
1,277,951
Source
Text: Field
64
1,277,951
Creator Location
Text: Field
254
798,313
Creator Country
Text: Field
254
798,313
Topic
Text: Field
128
25
4,713,807
Industry
Text: Field
128
50
1,485,225
Region
Text: Field
128
25
3,192,384
Total
23,767,552
The articles are organized by author, with one folder per author. Each author has full
permissions to their folder, while other authors only have read permissions to their
folders. Articles with no author attributed in the source data set are grouped into an
Anonymous folder. There are 798,313 English articles, grouped into 2393 folders,
and 479,638 multilingual articles, grouped into 3 folders.
Each item that has a category assigned stores a copy of the category name as its
first attribute. This attribute is hidden in the interface, but takes up storage in the
database.
TOGETHER, WE ARE THE CONTENT EXPERTS
CHAMPION TOOLKIT
67
Document Title
Size (Bytes)
Average
1,456
Std.Dev.
1,351
Min
Max
61,301
Data Type
Length
Max. Rows
Quantity
Category Name
1,010,189
DocRef
Text:Field
254
1,010,189
Text:Field
254
1,010,189
Approver
Text:Field
254
1,010,189
RequestedBy
Text:Field
254
1,010,189
Spec
Text:Field
50
1,010,189
Code
Text:Field
50
1,010,189
System
Text:Field
100
1,010,189
DocDesc
Text:Field
254
1,010,189
Integer1
Integer: Field
N/A
1,010,189
Integer2
Integer: Field
N/A
1,010,189
ReleaseDate
Date: Field
N/A
1,010,189
CompleteDate
Date: Field
N/A
1,010,189
UniqueAttr
Text:Field
200
1,010,189
FullPath
Text:Field
200
1,010,189
Total
15,152,835
TOGETHER, WE ARE THE CONTENT EXPERTS
CHAMPION TOOLKIT
68
Document Title
The documents are organized with 1000 per folder. Table 19 describes the size
distribution for the ingested documents.
Table 19: Ingested Document Size Parameters
Parameter
Size (Bytes)
Average
208,011
Std.Dev.
50,419
Min
6,144
Max
450,560
CHAMPION TOOLKIT
69
Document Title
About OpenText
OpenText is the worlds largest independent provider of Enterprise Content
Management (ECM) software. The Company's solutions manage information for all
types of business, compliance and industry requirements in the world's largest
companies, government agencies and professional service firms. OpenText supports
approximately 46,000 customers and millions of users in 114 countries and 12
languages. For more information about OpenText, visit www.opentext.com.
CHAMPION TOOLKIT
70
Visit online.opentext.com for more information about OpenText solutions. OpenText is a publicly traded company on both NASDAQ (OTEX) and the TSX (OTC) Copyright 2011 by OpenText Corporation. Trademarks or registered
trademarks of OpenText Corporation. This list is not exhaustive. All other trademarks or registered trademarks are the property of their respective owners. All rights reserved.