Home > Articles > Networking

  • PrintPrint
  • Share ThisShare This
  • DiscussDiscuss
Close Window

Sun Microsystems

Learn more…

IPsec -- A Secure Deployment Option
Sep 24, 2004
Using pGINA to Authenticate Users in Microsoft Windows Environments
Aug 27, 2004
Best Practices for Deploying the Sun StorADE Utility
Aug 20, 2004
Performing Network Solaris Installations Without a Local Boot Server
Aug 13, 2004
Using Solaris Resource Manager With Sun Ray
Aug 6, 2004
N1 Grid Architecture Realized: Strategic Flexibility
Jul 16, 2004
Global Grid Connectivity Using Globus Toolkit With Solaris Operating System
Jun 25, 2004
Building a Bootable DVD to Deploy a Solaris Flash Archive
Jun 18, 2004
Building OpenSSH--Tools and Tradeoffs, Updated for OpenSSH 3.7.1p2
Jun 18, 2004
Maximizing the Performance a Gigabit Ethernet NIC Interface
Jun 18, 2004
Dynamic Reconfiguration for High-End Servers: Part 2--Implementation Phase
Jun 11, 2004
Supporting Multiple Page Sizes in the Solaris Operating System Appendix
Jun 11, 2004
Dynamic Reconfiguration for High-End Servers: Part 1 --- Planning Phase
Jun 4, 2004
Supporting Multiple Page Sizes in the Solaris Operating System
Jun 4, 2004
Data Center Best Practices for High-End Servers
May 28, 2004
Understanding Tuning TCP
May 28, 2004
Sun Ray Deployment On Shared Networks
Apr 30, 2004
LDAP Triggers: A Framework for Sun Java System Directory Server
Apr 23, 2004
Taming Your Emu to Improve Application Performance
Apr 23, 2004
Best Practices for Deploying the Sun StorADE Utility
Apr 16, 2004
Sun Fire 15K/12K Auto Diagnosis and Recovery
Apr 16, 2004
Dynamic Reconfiguration and Oracle 9i Dynamically Resizeable SGA
Apr 9, 2004
Solaris Operating System Availability Features
Apr 2, 2004
Design, Features, and Applicability of Solaris File Systems
Mar 26, 2004
Securing the Sun Fire 12K/15K System Controller
Mar 19, 2004
Securing the Sun Fire 12K/15K Domains
Mar 12, 2004
Enterprise Network Design Patterns: High Availability
Feb 20, 2004
Performance Forensics
Feb 13, 2004
Migrating to the Solaris Operating System: Migrating From Tru64 UNIX
Feb 6, 2004
Tuning ORACLE to Minimize Recovery Time: For Solaris Operating System on SPARC
Feb 6, 2004
Securing Linux Systems With Host-Based Firewalls Implemented With Linux iptables
Jan 30, 2004
Securing Web Applications through a Secure Reverse Proxy
Jan 30, 2004
Hardware Replication Challenges
Jan 23, 2004
Solaris Volume Manager Performance Best Practices
Jan 23, 2004
Sun Fire 6800/4810/4800/3800 Systems Auto Diagnosis and Recovery Enhancements
Jan 16, 2004
Responding to a Customer's Security Incidents, Part 4: Processing Incident Data
Jan 9, 2004
Desktop Architecture Selection Guide
Dec 31, 2003
Sun ONE Portal Server 6 Best Practices
Dec 23, 2003
Migrating to the Solaris Operating System: Migration Strategies
Oct 31, 2003
Responding to Customer's Security Incidents--Part 3: Following Up After an Incident
Oct 31, 2003
Minimizing Domains for Sun Fire V1280, 6800, 12K, and 15K Systems, Part II
Oct 24, 2003
Using the LDAP to NIS+ Gateway
Oct 24, 2003
Deploying the Solaris Operating Environment Using a Solaris Security Toolkit CD
Oct 17, 2003
Minimizing Domains for Sun Fire V1280, 6800, 12K, and 15K Systems, Part I
Oct 17, 2003
Building Secure Sun Fire Link Interconnect Networks Using Sun Fire 15K and Sun Fire 12K Servers
Sep 26, 2003
Linux Overview for Solaris Users
Sep 26, 2003
Securing Sun Linux Systems: Part II, Network Security
Sep 26, 2003
Sun Fire V1280/Netra 1280 Server Considerations for Improving RAS
Sep 26, 2003
Sun ONE Portal Server and Lotus iNotes Integration Recipe
Sep 26, 2003
Transition Guide--Upgrading From the iPlanet Directory Server 5.1 Software to the Sun ONE Directory Server 5.2 Software
Sep 26, 2003
Capacity Planning as a Performance Tuning Tool—Case Study for a Very Large Database Environment
Sep 19, 2003
Securing Sun Linux Systems: Part I, Local Access and File Systems
Sep 19, 2003
Sun Fire 15K/12K Server Preferred Practices
Sep 19, 2003
Sun Grid Engine, Enterprise Edition—Configuration Use Cases and Guidelines
Sep 19, 2003
The IT Utility Model—Part I
Sep 19, 2003
Using filesync for Disaster Recovery, Business Continuance, and Mobility
Sep 19, 2003
Role Based Access Control and Secure Shell—A Closer Look At Two Solaris Operating Environment Security Features
Sep 12, 2003
Solaris Operating Environment Network Settings for Security: Updated for Solaris 9 Operating Environment
Sep 12, 2003
Using NTP on the Sun Fire 15K/12K Server
Sep 12, 2003
Consolidation Methodology
Sep 5, 2003
Using the Sun ONE Application Server 7 to Enable Collaborative B2B Transactions
Sep 5, 2003
An Architecture for Creating and Managing Integrated Software Stacks
Aug 29, 2003
Auditing System Security
Aug 29, 2003
Integrating the Secure Shell Software
Aug 29, 2003
Sun Cluster 3.0 Series: Guide to Installation—Part 2
Aug 29, 2003
Sun ONE Portal Server and Microsoft Exchange Integration Cookbook
Aug 29, 2003
Building a Global Compute Grid - Two Examples Using the Sun ONE Grid Engine and the Globus Toolkit
Aug 22, 2003
Configuring the Secure Shell Software
Aug 22, 2003
Responding to Customer's Security Incidents—Part 2: Executing a Policy
Aug 22, 2003
Sun Cluster 3.0 Series: Guide to Installation—Part 1
Aug 22, 2003
Sun Fire 6800/4810/4800/3800 Auto Diagnosis and Recovey Features
Aug 22, 2003
Provisioning in Replicated, Mission-Critical Environments
Aug 15, 2003
Responding to Customer's Security Incidents, Part 1: Establishing Teams and a Policy
Aug 15, 2003
Securing the Sun Fire 12K and 15K System Controllers
Aug 15, 2003
Writing an Authentication Plug-in for a Sun ONE Directory Server
Aug 15, 2003
Securing the Sun Cluster 3.x Software
Aug 8, 2003
Securing the Sun Fire 12K and 15K Domains
Aug 8, 2003
Understanding Gigabit Ethernet Performance on Sun Fire Servers
Aug 8, 2003
Using Midframe Servers to Build Secure Sun Fire Link Interconnect Networks
Aug 8, 2003
BluePrint for Benchmarking Success
Aug 1, 2003
System Management Services Software: An Inside Look
Aug 1, 2003
A Patch Management Strategy for the Solaris Operating Environment
May 23, 2003
Building OpenSSH—Tools and Tradeoffs
May 23, 2003
Configuring Databases Using Soft Links
May 23, 2003
Managing Shared Storage in a Sun Cluster 3.0 Environment With Solaris Volume Manager Software
May 23, 2003
Modeling Sun Cluster Availability
May 23, 2003
Performance Oriented System Administration For Solaris
May 23, 2003
A Strategy for Managing Performance
Apr 18, 2003
Solaris Operating Environment Security: Updated for Solaris 9 Operating Environment
Apr 18, 2003
Trust Modeling for Security Architecture Development
Apr 18, 2003
Understanding Solaris 9 Operating Environment Directory Services
Apr 18, 2003
A New Open Resource Management Architecture in the Sun HPC ClusterTools Environment
Feb 21, 2003
Campus Clusters Based on Sun Cluster Software
Feb 14, 2003
Memory Hierarchy in Cache-Based Systems
Feb 14, 2003
Designing Highly Available Architectures: A Methodology
Feb 7, 2003
Internet Protocol Network Multipathing (Update)
Feb 7, 2003
Minimizing the Solaris Operating Environment for Security: Updated for Solaris 9 Operating Environment
Feb 7, 2003
Configuring Boot Disks With Solaris Volume Manager Software
Jan 24, 2003
Managing Data Centers With Sun Management Center Change Manager
Jan 24, 2003
SQL*Net Performance Tuning Using Underlying Network Protocols
Jan 24, 2003
Extending Authentication in the Solaris 9 Operating Environment Using Pluggable Authentication Modules (PAM): Part II
Jan 17, 2003
HPC Administration Tips and Techniques
Jan 17, 2003
Sun Fire Midframe Server Best Practices for Firmware Update 5.13.x
Jan 17, 2003
Extending Authentication in the Solaris 9 Operating Environment Using Pluggable Authentication Modules: Part I
Dec 27, 2002
Sun Fire Systems Design and Configuration Guide
Dec 27, 2002
Consolidation in the Data Center
Dec 20, 2002
Enterprise Network Design Patterns: High Availability
Dec 20, 2002
Introduction to the Solaris Cluster Grid - Part 2
Dec 20, 2002
Introduction to the Sun Cluster Grid, Part 1
Sep 26, 2002
Sun's Quality, Engineering, and Deployment (QED) Test Train Model
Sep 26, 2002
Customizing JumpStart Framework for Installation and Recovery
Sep 20, 2002
Sun StorEdge Instant Image 3.0 and Oracle8i Database Best Practices
Sep 20, 2002
Windows NT Server Consolidation and Performance Improvements with Solaris PC NetLink 2.0 Software
Sep 20, 2002
Sun ONE Portal Server 3.0 Rewriter Configuration and Management Guide
Sep 13, 2002
Securing the Sun Fire 12K and 15K Domains, Updated for SMS 1.2
Sep 6, 2002
Securing the Sun Fire 12K and 15K System Controllers, Updated for SMS 1.2
Sep 6, 2002
An Information Technology Management Reference Architecture Implementation
Aug 30, 2002
Reducing the Backup Window With Sun StorEdge Instant Image Software
Aug 30, 2002
An Information Technology Management Reference Architecture
Aug 16, 2002
Drill-Down Monitoring of Database Servers
Aug 16, 2002
LAN-Free Backups Using the Sun StorEdge Instant Image 3.0 Software
Aug 16, 2002
Network Storage Evaluations Using Reliability Calculations
Aug 16, 2002
Securing LDAP Through TLS/SSL: A Cookbook
Aug 16, 2002
Securing the Sun Fire Midframe System Controller
Aug 16, 2002
Deployment Considerations for Data Center Management Tools
Aug 9, 2002
Guide to Installation-Part II: Sun Cluster 3.0 Software Management Services
Aug 9, 2002
How Hackers Do It: Tricks, Tools, and Techniques
Aug 9, 2002
Metropolitan Area Sun Ray Services
Aug 9, 2002
Securing the Sun Cluster 3.0 Software
Aug 9, 2002
Guide to Installation, Part I: Sun Cluster Management Services
May 24, 2002
Service Level Agreement in the Solaris OE Data Center
May 24, 2002
Solaris OE Enterprise Management Systems Part I: Architectures and Standards
May 24, 2002
Solaris OE Storage Resource Management: A Practitioner's Approach
May 24, 2002
Sun Fire 3800-6800 Servers Dynamic Reconfiguration
May 24, 2002
Using Live Upgrade 2.0 With JumpStart Technology and Web Start Flash
May 24, 2002
Enterprise Quality of Service Part II: Enterprise Solution using Solaris Bandwidth Manager 1.6 Software
May 17, 2002
Introduction to SunTone Clustered Database Platforms
May 17, 2002
Securing the Sun Enterprise 10000 System Service Processors
May 17, 2002
Service Level Management in the Data Center
May 17, 2002
Solaris Application Performance Optimization
May 17, 2002
Using Live Upgrade 2.0 With a Logical Volume Manager
May 17, 2002
Establishing a Solaris OE Architectural Model
Apr 5, 2002
Configuring OpenSSH for the Solaris Operating Environment
Mar 22, 2002
Data Center Design Philosophy
Mar 22, 2002
Enterprise Quality of Service (QoS): Part I - Internals
Mar 22, 2002
Issues in Selecting a Job Management System
Mar 22, 2002
Managing Solaris Operating Environment Upgrades With Live Upgrade 2.0
Mar 22, 2002
Securing Sun Fire 15K Domains
Mar 22, 2002
Server Virtualization Using Trusted Solaris 8 Operating Environment
Mar 22, 2002
Sun Cluster 3.0 Implementation Guide: Hardware Setup
Mar 22, 2002

Sorry, this author hasn't posted any blogs.

Capacity Planning for Internet Services

Like this article? We recommend
Capacity Planning for Internet Services

Get an overview of the performance of the new Sun GigaSwift Ethernet MMF Adapter card on a Sun Fire server in terms of TCP/IP networking. In addition to seeing a performance picture, you will also look at the root cause of the behavior of Sun servers through the revelation of some of the implementation details of the Solaris Operating Environment (Solaris OE). A set of tuning parameters that affect TCP/IP network performance is also explored and some tuning recommendations are given.

Bulk Transfer Traffic Performance

This section investigates the performance of bulk transfer traffic using the Sun GigaSwift Ethernet MMF adapters hardware (driver name ce). The goal is to achieve maximum throughput and reduce the overhead associated with data transfer.

Experiment Setup

Before the data is discussed, let's look at the hardware and software environment for this study. The system under test (SUT) is a domain of a Sun Fire 6800 midframe server. It is configured as follows:

  • CPU Power—Eight 900 MHz UltraSPARC_ III+ processors. Eight gigabytes of memory

  • Operating System—Solaris 8 OE Release 02/02

  • Network Interface—Sun GigaSwift Ethernet MMF adapters hardware using 66 MHz PCI interface

Five client machines equipped as follows drive the workload:

  • Client 1—A second domain of the Sun Fire 6800 server with eight 900 MHz UltraSparc III+ processors using Sun GigaSwift Ethernet MMF adapters hardware.

  • Client 2—A Sun Enterprise 6500 with twelve 400 MHz UltraSPARC II processors using Sun Gigabit™ Ethernet adapters P2.0 hardware

  • Client 3—A Sun Enterprise 4500 server with eight 400 MHz UltraSparc II processors using Sun Gigabit Ethernet adapters P2.0 hardware

  • Client 4—A Sun Enterprise 4500 server with eight 400 MHz UltraSparc II processors using Sun Gigabit Ethernet adapters P2.0 hardware

  • Client 5—A Sun Enterprise 450 server with four 400 MHz UltraSparc II processors using Sun™ Gigabit Ethernet adapters P2.0 hardware

All of the gigabit Ethernet cards on client machines use the 66 MHz PCI bus interface. Solaris 8 OE Release 02/02 is running on all of the client machines. Clients are connected to the server using a gigabit switch. MC-Netperf v0.6.1 [3] developed internally is used to generate the workload. MC-Netperf extends the publicly available Netperf [2] to handle synchronous multiconnection measurements using multicast-based synchronization. Two types of experiments were conducted:

  • Single-connection test. The second domain of Sun Fire 6800 (Client 1) is used as the client.

  • 10-connection test. Each of the five clients drive two connections.

Runs of 10 minutes are carried out to obtain the numbers discussed in the following section.

Getting an Appropriate Window Size

As described in "Bulk Transfer Traffic Performance" in a switch-based LAN the size of the TCP receive window determines the amount of unacknowledged data the pipe can hold at any given time. The bandwidth delay product determines the pipe size. Since the bandwidth is known to be one Gbps, and the minimal latency is calculated to be 70 to 150 microseconds in "Gigabit Ethernet Latency on a Sun Fire 6800 Server," a pipe must hold at least 1000000000 * 0.000150/8 = 18,750 bytes in transit to achieve one gigabit per second (or 964 Mbps excluding Ethernet, IP, and TCP headers) for packets with a 1,460-byte payload. However, whether or not this 964 Mbps number can be achieved depends on a lot of other factors, and the issue of the receive window size is definitely one of the first that needs to be addressed.

TCP Receive Window Tuning Parameters

When a TCP connection is established, both parties advertise the maximum receive window. The current receive window, which is the actual receive window during the middle of a transmission, is adjusted dynamically based on the receiver's capability. The current send window, although initially small to avoid congestion, ramps up to match the current receive window after the slow start process [4] if the system is tuned properly. A few parameters should be considered in the tuning process. These parameters are considered for the transmit side:

  • tcp_xmit_hiwat—This parameter is the high watermark for transmission flow control, tunable by using the ndd command. When the amount of unsent data reaches this level, no more data from the application layer is accepted until the amount drops to below the tcp_xmit_lowat (also tunable by using the ndd command). The default value for this parameter is 24,576 in Solaris 8 OE.

  • Sending socket buffer size—The sending socket buffer is where the application puts data for the kernel to transmit. The size of the socket buffer determines the maximum amount of data the kernel and the application can exchange in each attempt.

For the reception side, these parameters are considered:

  • tcp_recv_hiwat—The is the high watermark for reception flow control, tunable by using the ndd command. When the application starts to lag behind in reading the data, data starts accumulating in the streamhead. When TCP detects this situation, it starts reducing the TCP receive window by the amount of incoming data on each incoming TCP segment. This process continues until the amount of accumulated data drops to below tcp_xmit_lowat (also tunable by using the ndd command). The default value for this parameter is 24,576 in Solaris 8 OE4.

  • Receiving socket buffer size—Similar to what the sending socket buffer is for on the transmission side. The receiving socket buffer is where the kernel puts data for the application to read.

The parameter tcp_xmit_hiwat determines the default size for the sending socket buffer, so does tcp_recv_hiwat for the receiving socket buffer. However, applications can overwrite the default by creating socket buffers of different sizes when calling the socket library function. Essentially, tuning for the receive window is equivalent to selecting socket buffer size.

At the first glance, it appears that the size of socket buffers should be set to the largest possible value. However, having larger socket buffers means more resources are allocated for each connection. As discussed earlier, a windows of 18,750 bytes may be sufficient to achieve 964 Mbps. Setting socket buffers beyond a certain size will not produce any more benefit. Furthermore, socket buffer sizes determine only the maximum window size. In the middle of TCP data transmission, the current receive window size is the available buffer space in the receiver, and the current send window size is equal to MIN (receive window, send socket buffer). Hence, the size of the send socket buffer should be no smaller than the receive socket buffer to match the sizes of send window and receive window. In the experiments, the sizes of send socket buffer and receive socket buffer are equal.

The window size only applies to each individual connection. For multiple simultaneous connections, the pressure on window size may not be as large as for a single connection. But what exactly is the value needed for the gigabit Ethernet on Sun Fire servers?

Impact of Socket Buffer Size on Single and 10-Connection Throughput

Socket buffers from 16 kilobytes to one megabyte (note that the size of send socket is always matched with that of receive socket) were investigated using the ce interface card. Throughput numbers for both one TCP connection and 10 TCP connections were measured. As FIGURE 1 shows, for a 10-connection sending operation, socket buffers of 48 kilobytes to one megabyte have a significant throughput advantage (up to 20 percent improvement) over socket buffers of smaller sizes. However, for a 10-connection receiving operation, only the 24-kilobyte socket buffer is an under performer. Although 16 kilobytes is quite small, the deficiency in individual connections is more than covered by the existence of multiple connections. For the single connection situation, it appears that 48-kilobyte or larger buffers are needed, but 128-kilobyte or larger buffers do not seem to bring additional benefit. In summary, socket buffers of 64 kilobytes appear to be the best compromise to accommodate both single-connection and 10-connection traffic. Future experiments will use 64-kilobyte socket buffers.

Figure 1FIGURE 1 Impact of Socket Buffer Size On the Throughput of a ce Card

Reducing Transmission Overhead

Assuming the reception side can receive as fast as the sender can transmit, the sender must minimize the overhead it takes to transmit packets. The associated overhead is mostly in moving data between the socket buffer and the kernel modules, and the number of acknowledgment packets the sender needs to process for smooth pumping of data.

Reducing Overhead to Move Data

Since the Solaris OE must copy the data from the application area to the kernel area for transmission, there is an overhead related to the copy operation. The ndd-tunable parameter tcp_maxpsz_multiplier helps to control the amount of data each copy operation can move (FIGURE 2). Since the TCP module in the kernel needs to process all the pending data before it passes the data down to IP module, this amount should not be too large to prevent the packets from arriving at the hardware in a continuous flow. The default value for this parameter is two in the Solaris 8 OE and the unit is in TCP MSS. But what exactly is the best value for this parameter to support bulk transfer traffic?

Figure 2FIGURE 2 Effect of tcp.maxpsz Multiplier on Sending Side Performance

To answer this question, 1, 2, 4, 8, 10, 12, 16, 22, and 44 were tried for this parameter using 64-kilobyte socket buffers. Although the maximum allowed value for this parameter is 100, the tests stopped at 44 due to the fact that 64 kilobytes (the socket buffer) divided by 1,460 (the MSS) yields roughly 44.88. As shown in FIGURE 2, this parameter has almost no effect when there are ten connections. For the single-connection case, values of eight or larger deliver about 25 percent higher performance than values of 1, 2, and 4. The best throughput is reached when this parameter is set to 10, so this value is recommended.

Potential Impact of ACK Packets

Another important factor that affects the transmission overhead is the number of acknowledgment (ACK) packets the sender receives for every data packet sent. Each ACK packet is no different than a regular data packet until it reaches the TCP module. Hence, a system must invest a considerable amount of resource to process the ACK packets. The larger the amount of ACK packets, the higher the overhead per data packet.

The ratio of data packets over ACK packets is used to measure this overhead. In Solaris 8 OE, the parameter tcp_deferred_acks_max controls the initial maximal amount of data the receiver (in the same local subnet as the sender) can hold before it must emit an ACK packet. Although the unit of this parameter is in TCP MSS, it is equivalent to the number of packets in the bulk transfer traffic. Hence, setting tcp_deferred_acks_max (use ndd) to eight says the receiver can send one ACK packet for every eight data packets it receives, provided that the timer set by tcp_deferred_acks_interval5 does not time-out. The effect of tcp_deferred_acks_max also depends on the link quality and the status of the network. If ACK packets get lost for some reason, the sender will eventually retransmit data. When the receiver sees this, it will adapt itself to send ACK packets more frequently by reducing the amount of data it can hold without ACKing by one MSS. This process will be triggered for every retransmitted segment. However, in the worst case, the receiver will send an ACK packet for every other data packet it receives, as suggested by RFC 1122.

FIGURE 3 shows how the data packet rate changes when the number of ACK packets gets higher in the first 38 seconds of a connection with poor link quality. This experiment uses the default value of eight (MSS) for the parameter tcp_deferred_acks_max and 100 milliseconds for the parameter tcp_deferred_acks_interval. The packet rate is the highest when the connection first starts (due to the resolution of one-second the behavior of slow-start phase cannot be observed). Even though eight data packets are desirable for each ACK packet, this figure started with a ratio of four. This ratio is also due to the low resolution of this graph. The packet rate reported is the average packet rate during the past second. Using the snoop utility, four retransmitted segments can be observed, which forces the receiver's Solaris 8 OE to adjust four times the amount of data it can hold without ACKing. Two more jumps of the ACK packet rate can be observed in the 6th and the 7th seconds. The ratio of data packets to ACK packets remains about 2.0 for the rest of the connection.

Figure 3FIGURE 3 Impact of ACK Packets on Data Packet Rate

CPU Utilization

Data transfer is only a part of any running user application. To have an application running fast, the CPU time spent in data transfer must be minimized. Hence, knowing how much CPU time is dedicated to data transfer helps to plan the capacity requirement.

The CPU utilization for ce cards when the number of CPUs goes from one to eight was evaluated (FIGURE 4 through FIGURE 7). The utilization numbers shown in these figures are reported as the percentage of time that all available CPUs are engaged. A single number can have different meanings when the underlying number of CPUs is different. For instance, 50 percent utilization for a system with four CPUs means two CPUs are busy on average. Fifty percent utilization for a system with eight CPUs means four CPUs are busy on average.

Figure 4FIGURE 4 Throughput and Amount of Kernel Mode CPU Time Required To Support One TCP Sending Operation By One ce Card

Figure 5FIGURE 5 Throughput and Amount of Kernel Mode CPU Time Required To Support One TCP Receiving Operation By One ce Card

Figure 6FIGURE 6 Throughput and Amount of Kernel mode CPU Time Required To support 10 Simultaneous Sending Operations By One ce Card

Figure 7FIGURE 7 Throughput and Amount of Kernel mode CPU Time Required To support 10 Simultaneous Receiving Operations By One ce Card

One-Card, One-Connection CPU Utilization

In the one-connection case6 (FIGURE 4 and FIGURE 5), two CPUs are sufficient to drive one ce card to its maximum capacity for send-only operations. For reception, three CPUs are necessary to have one ce card deliver 600 Mbps, and five CPUs are needed to deliver 700 Mbps. The best reception performance is achieved with six CPUs (736 Mbps); seven or eight CPUs do not seem to bring additional performance benefit. Even though the overall CPU utilization drops to 15 percent when there are eight CPUs (FIGURE 4), it takes about 8 * 0.15 = 1.2 CPUs to handle network traffic. When there are five CPUs, the number of CPUs to handle network traffic is 5 * 0.26 = 1.30, not far from the 1.2 CPUs needed in the 8-CPU case. In summary, two CPUs are necessary to obtain good performance for one ce card. Diminishing returns are observed for three or more CPUs.

One-Card, Ten-Connection CPU Utilization}

For the 10-connection scenario (FIGURE 6 and FIGURE 7), each additional CPU brings higher sending performance, with eight CPUs achieving 830 Mbps. About 8 * 35% = 2.80 CPUs are dedicated to network traffic. For receiving, ce can reach close to line speed (920 Mbps) with six CPUs, utilizing the power of 6 * 70% = 4.2 CPUs. Diminishing returns are observed when four or more CPUs are added, indicating a recommendation of three CPUs for one ce card.

Note that the preceding numbers are measured using ce driver version 1.115. The Sun engineering team devotes continuous effort to improving both the throughput and utilization. You can expect to observe better than what is reported in your future experiments.

  • Share ThisShare This
  • Your Account

Discussions

Make a New Comment

You must log in in order to post a comment.

Informit Network