Monday Apr 20, 2009

Application server performance on the Sun X2270 and X4170

On Monday April 20, Sun announced new application server benchmark results of 2925.18 SPECjAppServer2004 JOPS@Standard for the Sun Fire X2270 and Sun Fire X4170 platforms which can be found at http://www.spec.org/jAppServer2004

These new platforms used open source software components such as the OpenSolaris 2008.11 Operating System, Sun GlassFish V2.1 Application Server, and MySQL 5.1 Database Server to obtain this benchmark result. These software components can be freely downloaded from http://www.sun.com. The Sun Java JDK 1.6.0_14 Performance Release is expected to be available for download June 2009.

This blog describes some details of the configuration.

Benchmark Configuration

The following diagram illustrates the configuration used to achieve this result:

Application Server Configuration Summary:

Sun Fire X2270
    \* 2x 2.93GHz Intel Xeon X5570
    \* 24 GB memory
    \* 1x 10GbE Dual Port NIC
    \* 2x Gbit NIC (onboard)
    \* 4x 500 GB SATA disks
    \* OpenSolaris 2008.11
    \* Sun GlassFish Enterprise Server V2.1
    \* JDK 1.6.0_14 Performance Release

Database Server Configuration Summary:

Sun Fire X4170
    \* 2x 2.93GHz Intel Xeon X5570
    \* 48 GB memory
    \* 1x 146Gb 10K RPM SAS disk
    \* 1x 10GbE Dual Port NIC
    \* 4x GBit NIC (onboard)
    \* 1x Dual Port FC/AL card
    \* 1x Sun StorageTek 2540 FC Array
    \* OpenSolaris 2008.11
    \* MySQL 5.1.30 Database Server

Application Server Configuration Details

The Sun Fire X2270 was configured using Solaris Containers into 4 separate zones to host 4 separate GlassFish application server instances. Solaris Containers is a virtualization technology in Solaris 10 and OpenSolaris which enable consolidation of multiple applications to improve system utilization and system efficiency.

The processes from two zones were bound to a processor set, consisting of 4 cores (1 chip) using the command "psrset -b PSET PID". The processes in the other 2 zones, were left to run on the remaining 4 cores on the second cpu chip and referred to as the default processor set.

The processor ID numbers for the processor set are obtained using the command "psrinfo -vp" and assigned to the processor set using the command "psrset -c [list of processor ids]". Each core in the Xeon X5570 supports 2 threads which are represented in Solaris as separate processor IDs. The list of running processes for each zone were obtained using the command "pgrep -z ZONENAME.

This binding technique of processes to a processor set in this way, enables the system to make efficient use of system resources for better performance. By running an application server process in a processor set consisting of 1 processor chip, the process is able to benefit by accessing memory local to the processor as well as the 8MB cache in the cpu chip.

To handle the network traffic between the driver systems and the 4 application server instances, a 10GbE dual port network card was configured in the Sun Fire X2270, where both ports were connected to the 10Gbit switch as shown in the diagram above. Two 1 Gbit network connections were configured on the X2270 system to handle the network traffic for the database transactions.

Each of the zones was configured with 2 separate virtual or logical network interfaces. Two zones shared one of 2 ports on the physical 10Gbit NIC and the other 2 zones shared the second port on the 10Gbit NIC for one of the virtual network interfaces for the transaction requests from the driver systems. On the database side, two zones shared separate 1 Gbit NICs for the other virtual network interface. The information to implement this network configuration is included in the full disclosure file for this benchmark result.

Each application server instance was configured to use the Sun Hotspot JVM JDK 1.6.0_14 Performance Release soon to be available for download from java.sun.com. Each JVM was run in the FX scheduling class using the command "priocntl -e -c FX [command]" when starting the application server instance. This benchmark result used the 64-bit version of the JVM.

Tuning of the Sun GlassFish Enterprise Server v2.1 included sizing of the application server threads and JDBC connections, GlassFish parameters and JVM options. This information is also included in the benchmark report full disclosure file.

The following system and network tunings were applied:

System Tuning in /etc/system:
set ddi_msix_alloc_limit=8
set pcplusmp:apic_multi_msi_max=8
set pcplusmp:apic_msix_max=8
set pcplusmp:apic_intr_policy=1

Network Tuning:
ndd -set /dev/tcp tcp_conn_req_max_q 16384
ndd -set /dev/tcp tcp_conn_req_max_q0 16384
ndd -set /dev/tcp tcp_xmit_hiwat 524288
ndd -set /dev/tcp tcp_recv_hiwat 524288
ndd -set /dev/tcp tcp_naglim_def 1

Additional details on tuning options can be found at:
http://www.solarisinternals.com/wiki/index.php/Networks
http://docs.sun.com/app/docs/doc/817-0404

Database Server Configuration Details:

The Sun X4170 was configured with MySQL 5.1.30 database server which is a multi-threaded single process and run in the FX scheduling class using the command "priocntl -s -c FX -i pid [process ID of mysqld]".

The database storage consisted of a Sun StorageTek 2540 FC array and was configured to host the database files and transaction logs using the ZFS filesystem.

Configuration and tuning parameters for the MySQL 5.1.30 database were implemented using the file /etc/my.cnf which is included in the benchmark disclosure form.

Two of the 4 onboard network controllers on the X4170 were connected directly to the application server for the database transactions. The Sun X4170 used the same system and network tunings as the application server listed above.

The database system also acted as a DNS server, to enable the workload to be distributed across the four application server instances using round-robin DNS.

Benchmark Description:

SPECjAppServer2004 (Java Application Server) is a multi-tier benchmark for measuring the performance of Java 2 Enterprise Edition (J2EE) technology-based application servers. SPECjAppServer2004 is an end-to-end application which exercises all major J2EE technologies implemented by compliant application servers as follows:
    \* The web container, including servlets and JSPs
    \* The EJB container
    \* EJB2.0 Container Managed Persistence
    \* JMS and Message Driven Beans
    \* Transaction management
    \* Database connectivity
Moreover, SPECjAppServer2004 also heavily exercises all parts of the underlying infrastructure that make up the application environment, including hardware, JVM software, database software, JDBC drivers, and the system network. The primary metric of the SPECjAppServer2004 benchmark is jAppServer Operations Per Second (JOPS) which is calculated by adding the metrics of the Dealership Management Application in the Dealer Domain and the Manufacturing Application in the Manufacturing Domain. There is NO price/performance metric in this benchmark.

Disclosure Statement:

Sun Fire X2270 (2 chips, 8 cores) 2925.18 SPECjAppServer2004 JOPS@Standard.
SPEC, SPECjAppServer reg tm of Standard Performance Evaluation Corporation.
Results from www.spec.org as of 4/20/09.

Thursday Oct 16, 2008

Application server performance on the Sun SPARC Enterprise T5440

On Monday Oct 13, Sun announced the Sun SPARC Enterprise T5440 server with a number of World Record benchmark results here. Among these include a benchmark publication of 5836.15 SPECjAppServer2004 JOPS@Standard which can be found here

Using  Oracle WebLogic 10.3 Application Server on a single T5440 in the application tier and  Oracle Database 11g Enterprise Edition on a second T5440 for the database tier, this  result achieved by Sun and Oracle demonstrates outstanding performance on a single server for the SPECjAppServer2004 benchmark. For competitive comparisons see bmseer blog

This blog describes some configuration details used in this benchmark result.

Benchmark Configuration

The following diagram illustrates the configuration used to achieve this result:


Application Server Configuration Summary:

Sun SPARC Enterprise T5440

  • 4x 1.4 GHz 8-core UltraSPARC T2 Plus
  • 128 GB memory
  • 2x 10GbE XAUI NIC
  • 1x Quad Port Gbit NIC
  • 1x Dual Port FC/AL card
  • 1x Sun StorageTek 3510 FC Array
  • Solaris 10 10/08
  • Oracle WebLogic 10.3 Application Server - Standard Edition
  • JDK 1.6.0_06 Performance Release

Database Server Configuration Summary:

Sun SPARC Enterprise T5440

  • 4x 1.4 GHz 8-core UltraSPARC T2 Plus
  • 128 GB memory
  • 1x 10GbE XAUI NIC
  • 1x Dual Port Gbit NIC
  • 2x Dual Port FC/AL card
  • 2x Sun StorageTek 2540 FC Array
  • 2x Sun StorageTek 2501 FC Expansion Array
  • 1x Sun StorageTek 3510 FC Array
  • Solaris 10 10/08
  • Oracle Database Enterprise Edition Release 11.1.0.7

Application Server Configuration Details

On a system like the Sun SPARC Enterprise T5440 with 32 cores that support 256 HW strands, Solaris Resource Management tools available in the Solaris 10 Operating Environment can be used to get optimum performance from these systems.

The Sun T5440 was configured using Solaris Containers into 8 separate zones to host 7 separate WebLogic appserver instances. Seven zones were bound to 7 processor sets, each consisting of 4 cores (32 HW strands) using the command "psrset -b PSET PID".  An eighth zone was not used during the execution of the benchmark. The process IDs for each zone were obtained using the command "pgrep -z ZONENAME".

Interrupts were disabled in each of the 7 processor sets using the command "psrset -f PSET". This left 4 cores in the default set to handle remaining user processes and interrupts generated mainly by network and disk controllers. Detailed zone and processor set configuration is included in the benchmark disclosure archive file.

To handle the network traffic between the driver systems and the 7 application server instances, 2x 10GbE XAUI Network cards were configured in the T5440 which were connected to the 2x 10Gbit switches as shown in the diagram above. Four 1 Gbit network connections were configured on each Sun T5440 system to handle the network traffic for the database transactions.

Each of the zones was configured with 2 separate virtual or logical network interfaces. Four zones shared one physical 10Gbit NIC and the remaining zones shared the other physical 10Gbit NIC for one of the virtual network interfaces. On the database side, two zones shared separate 1 Gbit NICs for the other virtual network interface.

Each application server instance was configured to use the Sun Hotspot JVM JDK 1.6.0_06 Performance Release available for download from java.sun.com.  Each JVM was run in the FX scheduling class using the command "priocntl -e -c FX java JVM_OPTIONS".

A Sun StorageTek 3510 Fiber Channel storage array was configured to provide durable storage for the application server filestore and JMS transaction logs.

Tuning of the Oracle WebLogic 10.3 Application Server included sizing of the application server threads and JDBC connections. This information is also included in the benchmark full disclosure file.

The following system and network tunings were applied:

System Tuning in /etc/system:
set kernel_cage_enable=0
set ip:ip_soft_rings_cnt = 16

Network Tuning:
ndd -set /dev/tcp tcp_conn_req_max_q 16384
ndd -set /dev/tcp tcp_conn_req_max_q0 16384
ndd -set /dev/tcp tcp_xmit_hiwat 131072
ndd -set /dev/tcp tcp_recv_hiwat 131072
ndd -set /dev/tcp tcp_naglim_def 1

Database Server Configuration Details:

The Sun SPARC Enterprise T5440 was configured with Oracle Database Enterprise Edition Release 11.1.0.7 to process the database transactions. Again, Solaris resource management utilities were used to configure the system.

The Oracle processes which include the shadow and database writer processes, were run in 4 processor sets containing 27 cores across all four UltraSPARC T2 Plus processors using the command "psrset -b PSET PID". These Oracle processes were run in the FX scheduling class using the command "priocntl -s -c FX -i pid PID".

The Oracle log writer process was executed in it's own processor set containing 1 core (8 HW strands) using the psrset command and run in the RT class using the command "priocntl -s -c RT -p 1 -i pid PID". The remaining 4 cores were used for network and disk interrupt handling.

The database storage consisted of 2 pairs of Sun StorageTek 2540 arrays and 2501 expansion arrays configured as 4 separate UFS file systems. A Sun StorageTek 3510 was configured for the database transaction logs and accessed as raw devices.

Tuning options for the Oracle 11g database software is included in the benchmark disclosure report.

The following system and network tunings were applied:

System Tuning in /etc/system:
set kernel_cage_enable=0
set ip:ip_soft_rings_cnt = 8
set hires_tick = 1


Network Tuning:
ndd -set /dev/tcp tcp_conn_req_max_q 16384
ndd -set /dev/tcp tcp_conn_req_max_q0 16384
ndd -set /dev/tcp tcp_xmit_hiwat 131072
ndd -set /dev/tcp tcp_recv_hiwat 131072
ndd -set /dev/tcp tcp_naglim_def 1

Driver and Network Configuration:

Ten Sun Blade T6300 Server Modules in a Sun Blade 6000 Chassis were used to drive the workload to the application servers. Nine of the 10 blades were used as client drivers. The last blade was used to support the benchmark Supplier Emulator function. The workload was distributed across the  application servers using round-robin DNS server which was hosted on the database system. Two Foundry EdgeIron 8-port 10Gbit switches were used to support the network load between the drivers and the T5440 application server.

Benchmark Description:

SPECjAppServer2004 (Java Application Server) is a multi-tier benchmark for measuring the performance of Java 2 Enterprise Edition (J2EE) technology-based application servers. SPECjAppServer2004 is an end-to-end application which exercises all major J2EE technologies implemented by compliant application servers as follows:

  • The web container, including servlets and JSPs
  • The EJB container
  • EJB2.0 Container Managed Persistence
  • JMS and Message Driven Beans
  • Transaction management
  • Database connectivity

Moreover, SPECjAppServer2004 also heavily exercises all parts of the underlying infrastructure that make up the application environment, including hardware, JVM software, database software, JDBC drivers, and the system network. The primary metric of the SPECjAppServer2004 benchmark is jAppServer Operations Per Second (JOPS) which is calculated by adding the metrics of the Dealership Management Application in the Dealer Domain and the Manufacturing Application in the Manufacturing Domain. There is NO price/performance metric in this benchmark.

Disclosure Statement:

SPECjAppServer2004
Sun SPARC Enterprise T5440 (4 chips, 32 cores) 5836.15 SPECjAppServer2004 JOPS@Standard.  SPEC, SPECjAppServer reg tm of Standard Performance Evaluation Corporation. Results from www.spec.org as of 10/13/08.

About

Kevin Kelly

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today