内に含まその他のドキュメントサポート リソース | PDF 文書ファイルをダウンロードする (1343 KB)
Chapter 6 Scalability StudiesThis chapter describes the results of scalability studies. You can refer to these studies for a sample of how the server performs, and how you might configure your system to best take advantage of Web Server’s strengths. This chapter includes the following topics: Study GoalsThe goal of the tests in the study was to shows how well Sun Java System Web Server 7 scales. The tests also helped to determine the configuration and tuning requirements for different types of content. The studies were conducted with the following content:
Study ConclusionWhen tuned, Sun Java System Web Server 7.0 scaled almost linearly in performance for dynamic and static content. HardwareThe studies (except for the e-commerce study) were conducted using the following hardware. For hardware information for the e-commerce study, see Hardware for E-Commerce Test. Web Server system configuration for static content:
Web Server system configuration:
Driver system configuration:
Network configuration: The Web Server and the driver machines were connected with multiple gigabit Ethernet links SoftwareThe load driver for these tests was an internally-developed Java application framework called the Faban driver. Configuration and TuningThe following tuning settings are common to all the tests in this study. Individual studies may also have additional configuration and tuning information. set rlim_fd_max=500000 set rlim_fd_cur=500000 set sq_max_size=0 set consistent_coloring=2 set autoup=60 set ip:ip_squeue_bind=0 set ip:ip_soft_rings_cnt=0 set ip:ip_squeue_fanout=1 set ip:ip_squeue_enter=3 set ip:ip_squeue_worker_wait=0 set segmap_percent=6 set bufhwm=32768 set maxphys=1048576 set maxpgio=128 set ufs:smallfile=6000000 *For ipge driver set ipge:ipge_tx_ring_size=2048 set ipge:ipge_tx_syncq=1 set ipge:ipge_srv_fifo_depth=16000 set ipge:ipge_reclaim_pending=32 set ipge:ipge_bcopy_thresh=512 set ipge:ipge_dvma_thresh=1 set pcie:pcie_aer_ce_mask=0x1 *For e1000g driver set pcie:pcie_aer_ce_mask = 0x1 ndd -set /dev/tcp tcp_conn_req_max_q 102400 ndd -set /dev/tcp tcp_conn_req_max_q0 102400 ndd -set /dev/tcp tcp_max_buf 4194304 ndd -set /dev/tcp tcp_cwnd_max 2097152 ndd -set /dev/tcp tcp_recv_hiwat 400000 ndd -set /dev/tcp tcp_xmit_hiwat 400000 Network ConfigurationSince the tests used multiple network interfaces, it was important to make sure that all the network interfaces were not going to the same core. Network interrupts were enabled on one strand and disabled on the remaining three strand of a core using the following script:
The following example shows psrinfo output before running the script:
The following example shows psrinfo output after running the script:
Web Server TuningThe following table shows the tuning settings used for the Web Server. Table 6–1 Web Server Tuning Settings
The following table shows the SSL session cache tuning settings used for the SSL tests. Table 6–2 SSL Session Cache Tuning Settings
Performance Tests and ResultsThis section contains the test-specific configuration, tuning, and results for the following tests: The following metrics were used to characterize performance:
The performance and scalability diagrams show throughput (ops/sec) against the number of cores enabled on the system. Static Content TestThis test was performed with a static download of a randomly selected file from a pool of 10,000 directories, each containing 36 files ranging in size from 1KB to 1000 KB. The goal of the static content test was to saturate the cores and find out the respective throughput and response time. This test used the following configuration:
The following table shows the static content scalability results. Table 6–4 Static Content Scalability
The following is a graphical representation of static content scalability results.
Dynamic Content Test: ServletThis test was conducted using the servlet. The test prints out the servlet's initialization arguments, environments, request headers, connection and client information, URL information, and remote user information. JVM tuning settings were applied to the server. The goal was to saturate the cores on the server and find out the respective throughput and response time. The following table shows the JVM tuning settings used in the test. Table 6–5 JVM Tuning Settings
The following table shows the results for the dynamic content servlet test. Table 6–6 Dynamic Content Test: Servlet Scalability
The following is a graphical representation of servlet scalability results.
Dynamic Content Test: C CGIThis test was performed by accessing a C executable called printenv. This executable outputs the environment variable information. CGI tuning settings were applied to the server. The goal was to saturate the cores on the server and find out the respective throughput and response time. The following table describes the CGI tuning settings used in this test. Table 6–7 CGI Tuning Settings
The following table shows the results of the dynamic content test for C CGI. Table 6–8 Dynamic Content Test: C CGI Scalability
The following is a graphical representation of C CGI scalability results.
Dynamic Content Test: Perl CGIThis test was conducted with Perl script called printenv.pl that prints the CGI environment. CGI tuning settings were applied to the server. The goal was to saturate the cores on the server and find out the respective throughput and response time. The following table shows the CGI tuning settings used in the dynamic content test for Perl CGI. Table 6–9 CGI Tuning Settings
The following table shows the results for the dynamic content test of Perl CGI. Table 6–10 Dynamic Content Test: Perl CGI Scalability
The following is a graphical representation of Perl CGI scalability results.
Dynamic Content Test: NSAPIThe NSAPI module used in this test was printenv2.so. It prints the NSAPI environment variables along with some text to make the entire response 2 KB. The goal was to saturate the cores on the server and find out the respective throughput and response time. The only tuning for this test was optimizing the path checks in obj.conf by removing the unused path checks. The following table shows the results of the dynamic content test for NSAPI. Table 6–11 Dynamic Content Test: NSAPI Scalability
The following is a graphical representation of NSAPI scalability results.
PHP Scalability TestsPHP is a widely-used scripting language uniquely suited to creating dynamic, Web-based content. It is the most rapidly expanding scripting language in use on the Internet due to its simplicity, accessibility, wide number of available modules, and large number of easily available applications. The scalability of Web Server combined with the versatility of the PHP engine provides a high-performing and versatile web deployment platform for dynamic content. These tests used PHP version 5.1.6. The tests were performed in two modes:
The test executed the phpinfo() query. The goal was to saturate the cores on the server and find out the respective throughput and response time. PHP Scalability with Fast CGIThe following table shows the Web Server tuning settings used for the FastCGI plug-in test Table 6–12 Tuning Settings for FastCGI Plug-in Test
The following table shows the results of the PHP with FastCGI test. Table 6–13 PHP Scalability with Fast CGI
The following is a graphical representation of PHP scalability with Fast CGI.
PHP Scalability with NSAPIThe following table shows the Web Server tuning settings for the PHP with NSAPI test. Table 6–14 NSAPI Plug-in Configuration for PHP
The following table shows the results of the PHP with NSAPI test. Table 6–15 PHP Scalability with NSAPI
The following is a graphical representation of PHP scalability with NSAPI.
SSL Performance Test: Static ContentThis test was performed with static download of a randomly selected file from a pool of 10,000 directories, each containing 36 files ranging in size from 1KB to 1000 KB. The goal of the SSL static content tests was to saturate the cores and find out the respective throughput and response time. Only four cores of T2000 were used for this test. This test used the following configuration:
The following table shows the SSL static content test results. Table 6–16 SSL Performance Test: Static Content Scalability
The following is a graphical representation of static content scalability with SSL.
SSL Performance Test: Perl CGIThis test was conducted with Perl script called printenv.pl that prints the CGI environment in SSL mode. The test was performed in SSL mode with the SSL session cache enabled. The goal was to saturate the cores on the server and find out the respective throughput and response time. The following table shows the SSL Perl CGI test results. Table 6–17 SSL Performance Test: Perl CGI Scalability
The following is a graphical representation of Perl scalability with SSL.
SSL Performance Test: C CGIThis test was performed by accessing a C executable called printenv in SSL mode. This executable outputs the environment variable information. The test was performed in SSL mode with the SSL session cache enabled. The goal was to saturate the cores on the server and find out the respective throughput and response time. The following table shows the SSL CGI test results. Table 6–18 SSL Performance Test: C CGI Scalability
The following is a graphical representation of C CGI scalability with SSL.
SSL Performance Test: NSAPIThe NSAPI module used in this test was printenv2.so. It prints the NSAPI environment variables along with some text to make the entire response 2 KB. The test was performed in SSL mode with the SSL session cache enabled. The goal was to saturate the cores on the server and find out the respective throughput and response time. The following table shows the SSL NSAPI test results. Table 6–19 SSL Performance Test: NSAPI Scalability
The following is a graphical representation of NSAPI scalability with SSL.
E-Commerce Web Application TestThe e-commerce application is a more complicated application that utilizes a database to simulate online shopping. Hardware for E-Commerce TestThe e-commerce studies were conducted using the following hardware. Web Server system configuration:
Database system configuration:
Driver system configuration:
Network configuration: The Web Server, database, and the driver machines were connected with a gigabit Ethernet link. Configuration and Tuning for E-Commerce TestThe e-commerce test was run with the following tuning settings. JDBC tuning: <jdbc-resource>
<jndi-name>jdbc/jwebapp</jndi-name>
<datasource-class>oracle.jdbc.pool.OracleDataSource</datasource-class>
<max-connections>200</max-connections>
<idle-timeout>0</idle-timeout>
<wait-timeout>5</wait-timeout>
<connection-validation>auto-commit</connection-validation>
<property>
<name>username</name>
<value> db_user </value>
</property>
<property>
<name>password</name>
<value> db_password </value>
</property>
<property>
<name>url</name>
<value>jdbc:oracle:thin:@db_host_name:1521:oracle_sid</value>
</property>
<property>
<name>ImplicitCachingEnabled</name>
<value>true</value>
</property>
<property>
<name>MaxStatements</name>
<value>200</value>
</property>
</jdbc-resource
JVM tuning: -server -Xmx1500m -Xms1500m -Xss128k -XX:+DisableExplicitGC E-commerce Application DescriptionThe test models an e-commerce web site that sells items from a large inventory. It uses the standard web application model-view-controller design pattern for its implementation: the user interface (that is, the view) is handled by 16 different JSP pages which interface with a single master control servlet. The servlet maintains JDBC connections to the database, which serves as the model and handles 27 different queries. The JSP pages make extensive use of JSP tag libraries and comprise almost 2000 lines of logic. Database CardinalityThe database contains 1000 orderable items (which have two related tables which also have a cardinality of 1000), 72000 customers (with two related tables), and 1.9 million orders (with two related tables). Standard JDBC connections handle database connection using prepared statements and following standard JDBC design principles. WorkloadA randomly-selected user performs the online shopping. The following operations were used in the Matrix mix workload (operations were carried out with precedence of operations): Home, AdminConfirm, AdminRequest, BestSellers, BuyConfirm, BuyRequest, CustomerRegistration, NewProducts, OrderDisplay, OrderInquiry, ProductDetail, SearchRequest, SearchResults, and ShoppingCart. The Faban driver was used to drive the load. Think time was chosen from a negative exponential distribution. The minimum think time was 7.5 seconds, the maximum was 75 seconds. The maximum number of concurrent users that the system can support was based on the following passing criteria. Table 6–20 Performance Test Pass Criteria
The following table shows the e-commerce web application test results. Table 6–21 E-Commerce Web Application Scalability
The following is a graphical representation of e-commerce web application scalability. ![]() The following is a graphical representation of e-commerce web application scalability. ![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||