Try and Buy FAQs
Server / Hardware
Performance tools
Server / HardwareQ:
I have heard of processor, core and hardware threads. What are they?
A:
Sun Fire CoolThreads technology servers, specifically Sun Fire T1000 and Sun Fire T2000 servers, system contains a single Ultrasparc T1 chip or processor. The T1 processor is a unique design of 8 individual processing units called cores sharing one on-chip interconnect. It is somewhat like an 8-way system on a single chip. Each core supports 4 hardware (HW) threads of execution. These HW threads are scheduled on the core's processing unit in round-robin order. A different Software thread can run on each one of these HW threads. 32 Software threads can run in parallel on a single T1 processor. Q:
How can I tell how much memory I have?
A:
prtconf(1M) is the best mechanism to determine the amount of memory
# prtconf System Configuration: Sun Microsystems sun4v Memory size: 32760 Megabytes Q:
How much memory can I put in a Sun Fire CoolThreads server?
A:
There are 3 DIMM sizes supported, 512MB, 1GB and 2GB. On a Sun Fire T2000 server there are 16 DIMM slots so 8GB, 16GB and 32GB configurations are possible. On a Sun Fire T1000 server there are 8 available DIMM slots. The Sun Fire T1000 server currently offers 2GB, 8GB, and 16GB configurations.
Q:
I want to test my application with less memory - how do I disable memory?
A:
We have a document which describes this process here.
Q:
How can I tell how many cores I have?
A:
psrinfo(1M) is the best option. An abbreviated output is shown below
# psrinfo
0 on-line since 01/31/2006 21:33:18
1 on-line since 01/31/2006 21:33:19
2 on-line since 01/31/2006 21:33:19
3 on-line since 01/31/2006 21:33:19
4 on-line since 01/31/2006 21:33:19
...
29 on-line since 01/31/2006 21:33:19
30 on-line since 01/31/2006 21:33:19
31 on-line since 01/31/2006 21:33:19
Q:
How do I tell how many disks are in the system?
A:
The command format(1M) as root is the best option
# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c1t0d0 [SUN72G cyl 14087 alt 2 hd 24 sec 424>
/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/sd@0,0
1. c1t1d0 [SUN72G cyl 14087 alt 2 hd 24 sec 424>
/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/sd@1,0
Specify disk (enter its number):
Q:
Will there be 2-way and 4-way T1 servers in the future?
A:
No, the UltraSparc T1 processor is a single chip per system solution.
Q:
Are there any built in network devices in Sun Fire CoolThreads servers?
A:
There are 4 integrated 1 Gig network devices built into the motherboard of Sun Fire T1000 and Sun Fire T2000 servers.
Q:
What is the name of the 4 integrated 1Gig Network devices on Sun Fire CoolThread servers?
A:
The Sun Fire T1000 server and Sun Fire T2000 server integrated 1Gig network devices are labeled net0, net1, net2, net3 on the back of a physical system. On a Sun Fire T1000 server specifically, the ports are called bge0, bge1, bge2, bge3. Use ifconfig(1M) to display them
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
bge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 129.148.94.85 netmask ffffff00 broadcast 129.148.94.255
ether 0:14:4f:2:e1:8a
On the Sun Fire T2000 server, the ports are called ipge0, ipge1, ipge2, ipge3. Use ifconfig(1M) to display them # ifconfig -a ... ipge0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 10.7.195.225 netmask ffffff00 broadcast 10.7.195.255 ether 0:3:ba:d8:ea:62 Q:
I have heard of crypto acceleration in Niagara. What is it?
A:
Each UltraSparc T1 core has an MAU which can be used to accelerate
DSA and RSA SSL operations. This technology is enabled by the
Solaris Cryptographic Framework. More details can be found at
http://www.sun.com/bigadmin/features/articles/crypt_framework.html For more details on crypto acceleration setup see the following blog: http://blogs.sun.com/roller/page/enigma/ Read Sun Blueprint at http://www.sun.com/blueprints/0306/819-5782.html Q:
What racks are supported for Sun Fire CoolThreads servers?
A:
The Sun Fire T1000 server has standard 1U (1.75 inches high) rack dimensions and is 16.8 inches wide by 19 inches deep. The Sun Fire T2000 server has standard 2U (3.5 inches high) rack dimensions and is 17.3 inches wide by 24.3 inches deep. Both servers come standard with rails for mounting in racks. Sun Fire T1000 and T2000 servers will fit in the majority of industry standard racks that have a outer depth dimensions of greater than 30".
Sun offers a number of Rack options detailed at: http://store.sun.com/CMTemplate/CEServlet?process=SunStore&cmdViewProduct_CP&catid=91104 Q:
How many Sun Fire CoolThreads servers can be put in a single rack?
A:
Sun Fire T1000 server: Most racks will accommodate 36-42 Sun Fire T1000 servers. This number is a function of rack dimensions and the amount of power being delivered to the rack. At a maximum of 220 Watts per server, 42 Sun Fire T1000 servers would require approximately 9.24 Kilowatts.
Sun Fire T2000 server: Most racks will accommodate 20 Sun Fire T2000 servers. This number is a function of rack dimensions and the amount of power being delivered to the rack. At a maximum of 350 Watts per server, 20 Sun Fire T2000 servers would require a 7 Kilowatt rack.
Q:
Do I need to plug in both power supplies to the Sun Fire T2000 server?
A:
No, the Sun Fire T2000 server will run with just 1 power supply.
Q:
What happens if I have two power supplies in my Sun Fire T2000 server, does it draw twice the power?
A:
If two power supplies are in use the power supplies will share the load. If 300 Watts is being used by the Sun Fire T2000 server each supply will provide approximately 150 Watts.
Q:
What happens if I pull out 1 power cable on the Sun Fire T2000 server - will the system crash?
A:
No, the Power supplies on the Sun Fire T2000 server are auto-sensing. The remaining power supply will automatically switch to supplying all the power.
Q:
How do I measure the power drawn from my Sun Fire CoolThreads server?
A:
The easiest option is a Watt meter such as WattsUp for example at
http://www.powermeterstore.com/plug/wattsup.php A Sun Fire T1000 or Sun Fire T2000 server is plugged into this device, which then is plugged into the power socket. The device will give an average power draw for a system. Q:
What PCI card slots are available on my Sun Fire CoolThreads server?
A:
The Sun Fire T1000 server has 1 PCI-E slot, supporting 1x, 4x, and 8x width. The Sun Fire T2000 server has 3 PCI-E slots which are the shorter black slots and 2 PCI-X slots which are the longer white slots. The PCI-X slots support PCI 33MHz, 66MHz and PCI-X cards The internal disk controller currently occupies one of the PCI-X slots but in future releases this will be integrated on the motherboard. Q:
What size cards will fit in my Sun Fire CoolThreads server?
A:
The PCI-E slot on the T1000 is low profile. On the Sun Fire T2000 server, generally all cards must be low profile, specifically PCIe cards which are 6.93 x 5.15 cm and PCI/PCIX cards MD2 form factor. Q:
I want to connect some external storage where do I get an appropriate card?
A:
There are a number of PCI-E and PCI-X options available (note: PCI-X is only an option for the Sun Fire T2000 server).
http://www.sun.com/storage/san/infrastructure/fc_hba/ Q:
Where do I get the drivers for HBAs?
A:
The latest drivers are shipped with OS.
Q:
What Storage can I attach? Is EMC and Hitachi qualified on Sun Fire CoolThreads servers?
A:
Many of Sun's Storage offerings are all qualified on the Sun Fire T1000 and Sun Fire T2000 server. Information is available at:
http://www.sun.com/storage/index.jsp EMC and Hitachi storage are qualified by these vendors. EMC qualification information is available at http://www.emc.com/interoperability/matrices/EMCSupportMatrix.zip - Hitachi qualification is currently underway. Q:
I only use Emulex cards - are these available for Sun Fire CoolThreads servers?
A:
Yes. Again see
http://www.sun.com/storage/san/infrastructure/fc_hba/ SolarisQ:
What version of the Solaris Operating Environment runs on my Sun Fire CoolThreads server?
A:
The official version of Solaris that ships with the Sun Fire T1000 server is Solaris 10 1/06. For the latest information on patches as well as supported firmware and software for the Sun Fire T1000 server, see the Sun Fire T1000 Server Product Notes available at http://www.sun.com/products-n-solutions/hardware/docs/Servers/coolthreads/t1000/index.html
The official version of Solaris shipped with Sun Fire T2000 server is Solaris 10 1/06. This requires some mandatory patches listed in the Sun Fire T2000 Product Notes available here: http://www.sun.com/servers/coolthreads/tnb/updates.jsp. Solaris 10 6/06 is also supported. This is currently available for download at http://www.sun.com/software/solaris/ Solaris Next which is available as part of the Solaris Express program is also available: http://www.sun.com/software/solaris/solaris-express/ Q:
How do I tell what OS version is installed?
A:
The file /etc/release
cat /etc/release
Solaris 10 3/05 HW2 s10s_hw2wos_05 SPARC
Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 26 September 2005
uname(1M) also gives information of the patch level
# uname -a SunOS ontario-mc70 5.10 Generic_118833-02 sun4v sparc SUNW,Sun-Fire-T200 Q:
Where do I get the latest patches?
A:
There are pointers on this webpage to the latest patches.
Q:
Can Solaris 8 or Solaris 9 run on my Sun Fire CoolThreads server?
A:
No OS release prior to Solaris 10 1/06 on the Sun Fire T1000 server, and Solaris 10 HW2B5 on the Sun Fire T2000 server is supported.
Q:
Will Jumpstart work on my Sun Fire CoolThreads server?
A:
Yes.
Q:
Do I need to do any /etc/system tuning on the Sun Fire T2000 server?
A:
We provide the basic set of /etc/parameters - see
Recommended Parameters
Q:
How do I figure out which virtual processors are associated with a core?
A:
The numbering scheme of a T1 processor is very simple. There are 8 cores
in the system and 4 threads per core. Solaris considers these to be 32 virtual cpus
Virtual cpus 0,1,2,3 are in core 0
Virtual cpus 4,5,6,7 are in core 1
Virtual cpus 8,9,10,11 are in core 2
Virtual cpus 12,13,14,15 are in core 3
Virtual cpus 16,17,18,19 are in core 4
Virtual cpus 20,21,22,23 are in core 5
Virtual cpus 24,25,26,27 are in core 6
Virtual cpus 28,29,30,31 are in core 7
Q:
How do I enable UltraSPARC T1 Crypto features?
A:
UltraSPARC T1 processor has Cryptographic Accelerator that speed RSA/DSA
operations. This feature is enabled by default on the system via the
Solaris Crytpgraphic Framework see
http://docs.sun.com/app/docs/doc/816-4863/6mb20lvgm?a=view If an application is PKCS#11 compliant, it can easily hook to the Framework, which in turn will access the Cryptographic Accelerator. For general application specific setup, please refer to Hardware Cryptographic Accelerator Installation guide for that Application. Read Sun Blueprint at http://www.sun.com/blueprints/0306/819-5782.html Solaris Networking & Disk IOQ:
I have a network intensive Application - how can I tell how many packets are inbound and outbound?
A:
The netstat(1M) command displays input and output packets for
a device and the total for the system. It also displays error
counts Example output is given below.
netstat -I ipge1 -i 1 input ipge1 output input (Total) output packets errs packets errs packets errs packets errs 10 0 175 0 390 0 550 0 30 0 96 0 421 0 218 0 5 0 64 0 331 0 147 0 18 0 32 0 309 0 326 0 Q:
What Network tuning should I use?
A:
No additional tuning is required for Sun Fire T1000 Server. For the Sun Fire T2000 server, make
sure the latest ipge patch, 120849-03, has been applied which is available for download at
http://sunsolve.sun.com/search/document.do?assetkey=1-21-120849-03-1 We recommend the following set of ipge parameters.
set ip:ip_squeue_bind = 0
set ip:ip_squeue_fanout = 1
set ipge:ipge_tx_syncq=1
set ipge:ipge_taskq_disable = 0
set ipge:ipge_tx_ring_size = 2048
set ipge:ipge_srv_fifo_depth = 2048
set ipge:ipge_bcopy_thresh = 512
set ipge:ipge_dvma_thresh = 1
For a description of these parameters see the following bloghttp://blogs.sun.com/roller/page/ipgeTuningGuide?entry=ipge_ethernet_device_driver_tunable Q:
I think my Disk I/O is a bottleneck, how can I determine this?
A:
iostat(1M) is the best way to determine if disk I/O is an
issue
Note the first sample for iostat, vmstat and mpstat are an average accumulation since the system was booted. This sample should be discarded
# iostat -xcn 5
<<<< DISCARD >>>>
cpu
us sy wt id
0 0 0 100
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
1.0 0.2 12.9 1.2 0.0 0.0 0.0 7.4 0 0 c1t0d0
0.8 0.0 105.6 0.0 0.0 0.0 0.0 1.9 0 0 c1t1d0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.5 0 0 c0t0d0
0.1
<<<< VALID >>>>
cpu
us sy wt id
0 0 0 100
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c1t0d0
488.7 0.0 62552.5 0.0 0.0 0.9 0.0 1.9 1 93 c1t1d0
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0t0d0
The above example indicates disk c1t1d0 is 93% busy (% b field). The I/O is 100% reads, 488 per second (field r/s) on average. The total read throughput is 62552Kb/s (kr/s field) or about 62MB/s Q:
How do I create a new filesystem?
A:
The simplest way to create a filesystem is with the newfs(1M) command
use format(1M) to determine a disk slice to use or create one # newfs /dev/dsk/c1t0d0s6 newfs: construct a new file system /dev/rdsk/c1t0d0s6: (y/n)? y Warning: 2496 sector(s) in last cylinder unallocated /dev/rdsk/c1t0d0s6: 57056832 sectors in 9287 cylinders of 48 tracks, 128 sectors 27859.8MB in 581 cyl groups (16 c/g, 48.00MB/g, 5824 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920, Initializing cylinder groups: ........... super-block backups for last 10 cylinder groups at: 56139168, 56237600, 56336032, 56434464, 56532896, 56623136, 56721568, 56820000, 56918432, 57016864mount the new filesystem with the mount(1M) command mount /dev/dsk/c1t0d0s6 /mnt To automount the filesystem at boot time place an entry in /etc/vfstab man vfstab(1) for details Q:
How do I improve the write performance of my internal disks?
A:
The Sun Fire T1000 server is already configured with the write cache enabled. On the Sun Fire T2000 server, one option which is used on Linux systems today by default is turning on the write caches of the internal disks Use the format(1M) command with the -e (expert mode) flag
# format -e
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c1t0d0 [SUN72G cyl 14087 alt 2 hd 24 sec 424>
/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/sd@0,0
1. c1t1d0 [SUN72G cyl 14087 alt 2 hd 24 sec 424>
/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/sd@1,0
Specify disk (enter its number): 1
selecting c1t1d0
[disk formatted]
Use the cache option
FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
scsi - independent SCSI mode selects
cache - enable, disable or query SCSI disk cache
volname - set 8-character volume name
!
Q:
How do I create a stripe across the internal disks of a Sun Fire T2000 server?
A:
The simplest way to create a stripe is with Solaris Volume Manager
which is free with Solaris. More information is at
http://www.sun.com/software/solaris/data_management.jsp First use format to determine which disk slices will be used in the stripe Next create a metadb(1M) Delete old replicas # metadb -d -f c1t0d0s2 c1t1d0s2 c1t2d0s2 c1t3d0s2 Attach a new database device # metadb -a -f c1t0d0s2 c1t1d0s2 c1t2d0s2 c1t3d0s2 Next configure the metadevices with metainit(1M). In this example we create a device called d10 with 1 stripe containing 4 components. The -i option specifies an interlace factor of 16k metainit d10 1 4 c1t0d0s2 c1t1d0s2 c1t2d0s2 c1t3d0s2 -i 16k A new device will be created /dev/md/rdsk/d10 and /dev/md/dsk/d10 Q:
Can I configure Hardware Raid on my Sun Fire T2000 server?
A:
Yes, please refer to Chapter 3 of the Sun Fire T2000 Server Administration Guide
http://www.sun.com/products-n-solutions/hardware/docs/Servers/coolthreads/t2000/index.html Q:
Does the system support Jumbo frames on the onboard NICs?
A:
Yes, Jumbo frames are supported on the Sun Fire T2000 server but this is not enabled by default. For instructions to enable Jumbo Frames on the Sun Fire T2000 server, see: http://www.sun.com/products-n-solutions/Jumbo frames can be implemented on both the internal Gigabit Ethernet interfaces of the Sun Fire T2000 Server, and those provided by optional PCI-E and PCI-X based cards. Note that the maximum MTU stated in that URL is 8192 but this has been since reduced to 8170. On the Sun Fire T1000 server Jumbo frames are not currently supported. Q:
Does the system support iSCSI via the onboard NICs?
A:
The iSCSI Initiator is available in Solaris 10 1/06 - which is available for download with the Sun Fire T2000 Server and is pre-installed on the Sun Fire T1000 server. The initiator will work on any platform which is supported by Solaris. The iSCSI Initiator uses the network interfaces at the TCP level, so it's not aware of what NIC is actually used.
Q:
Does the system support ZFS, and if so, will it boot from a ZFS volume?
A:
Yes. ZFS is a package added to Solaris so is not platform - dependent
ApplicationsQ:
My Application currently runs on a Sun Fire v880 server, will it run well on a Sun Fire T2000 server?
A:
The key to good performance on a Sun Fire T2000 server is throughput. Maximum throughput is achieved when the application keeps many hardware threads busy in parallel. If an application scales on a Sun Fire v880 server, it should also do well on a Sun Fire T2000 server. Q:
My Application currently runs on a Sun Fire V240 server, will it run well on a Sun Fire T1000 server?
A:
Like the Sun Fire T2000 server, the key to good performance on a Sun Fire T1000 server is throughput. Maximum throughput is achieved when the application keeps many hardware threads busy in parallel. If an application is multi-threaded and performs well on a Sun Fire V240 server, it should also do well on a Sun Fire T1000 server. You may need to run multiple instances of the application if it does not scale well across multiple cores. Solaris Containers provides the mechanism to do this. Q:
What version of Java is on my Sun Fire CoolThreads server?
A:
Solaris ships with J2SE 1.5.0_06 in /usr/jdk directory. Run java -version to confirm
java -version java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05) Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode) Q:
Where do I get a new version of Java?
A:
Q:
Where should I install a new version of Java?
A:
New versions are usually installed in /usr/jdk
Q:
Do I need to recompile my C / C++ application to run on a Sun Fire CoolThreads server?
A:
Sun Fire T1000 and T2000 servers are fully SPARC binary compatible for all Sparc architectures that Sun supports, v7, v8 and v9. An application does not need to be recompiled or modified in any way to run on a Sun Fire CoolThreads server. Binaries created by older versions of the Sun Studio compiler will also work well. All the current compiler optimizations also work well. We recommend using the latest Sun Studio 11 compiler which is available free for download from Q:
If I want to rebuild my application where do I install the compiler?
A:
Sun Studio compilers are usually installed in /opt/SUNWspro
Q:
What flags should I use to compile my application?
A:
As a minimum we recommend the following
32-bit Studio 7,8,9,10 -fast -xO4 -xtarget=generic
32-bit Studio 11 -fast -xO4 -xtarget=ultraT1
64-bit Studio 7,8,9,10 -fast -xO4 -xtarget=generic64
64-bit Studio 11 -fast -xO4 -xtarget=generic64
There are a host of other flags in Sun Studio software that are worth investigating. They are described in the following webpages Feedback Optimization
Feedback Optimizationhttp://developers.sun.com/prodtech/cc/articles/profeedback.html Mapfiles http://developers.sun.com/prodtech/cc/articles/codelayout.html Post Optimizer http://developers.sun.com/prodtech/cc/articles/codelayout.html If building a shared object, -KPIC or -Kpic should be used Q:
Will gcc work on my system?
A:
Yes. As of Solaris 10 gcc is actually shipped with the OS. Version 3.4.3 is available at /usr/sfw/bin
There is a similar version for free download at http://www.sunfreeware.com/indexsparc10.html Q:
What gcc flags should I use?
A:
Standard gcc flags should work fine. Using higher optimization
usually helps performance
Q:
Will a 64-bit application work on my Sun Fire CoolThreads server?
A:
Yes. Solaris 10 is a 64-bit OS and can run both 32-bit and
64-bit applications.
Q:
Will Oracle work on my Sun Fire T2000 server?
A:
Oracle should work extremely well out of the box on a Sun Fire T2000 server. Oracle
has been running on large scale SMP systems for many years which maps
well to the Sun Fire T2000 server.
Q:
Any special Oracle tuning for UltraSPARC T1 CoolThreads Servers?
A:
Standard database tuning needs to be applied for Oracle on a Sun Fire T2000 server. In addition, the following tuning might be required:
In /etc/system add set consistent_coloring=2 For write intensive applications placing the database log on storage other than Sun Fire T2000 server internal drives is recommended Use iostat(1M) to ensure there are no disk I/O bottlenecks in the system Q: Will Oracle RAC run on my Sun Fire T2000 server?
A:
Oracle RAC also works well on a Sun Fire T2000 server.
Q:
How do I link Java and webserver to leverage UltraSPARC T1 Crypto acceleration?
A:
As of JDK 1.5, the access to the Cryptographic Accelerator is transparent if the application does not force a specific provider, because JDK 1.5
comes preconfigured with SunPKCS11 as the first security provider. Configuration is in the file
$JAVA_HOME/jre/lib/security/java.security and the line security.provider.1=sun.security.pkcs11.SunPKCS11 ${java.home}/lib/security/sunpkcs11-solaris.cfg Q:
Where can I get a list of all the JVM options?
A:
Q:
I have a Java Application, how do I tune the JVM for performance?
A:
There is an excellent Java SE 5.0 tuning guide at
http://java.sun.com/performance/reference/whitepapers/tuning.html Q:
Are there any special instructions I need to follow to install / deploy Oracle 10r R2 on the Sun Fire CoolThreads server?
A:
If your Oracle installation involves the following, please implement the instructions below:
Description: Use of the Oracle JVM involves an uncommon software trap which was not implemented correctly for sun4v platforms (T1000/T2000) and will cause the calling process/thread to enter an infinite loop and appear to be hung. Spinning processes/threads respond normally to UNIX signals and can be killed. If the Oracle JVM is selected for installation, the JVM will be called and installation will appear to hang at that point. If Oracle is installed on another SPARC system and that installation is copied to a T1000/T2000, processes will spin when they first attempt to call the JVM. Workaround:
Open Source SoftwareQ:
Where can I get the GNU distribution for Sparc Solaris?
A:
Performance toolsQ:
Will Dtrace work on my Sun Fire CoolThreads server?
A:
Yes Dtrace will work on a Sun Fire T1000 or T2000 server. A good starting point for Dtrace is
http://www.sun.com/bigadmin/content/dtrace/ Q:
What other performance tools do you recommend?
A:
Sun has a range of "Cool Tools" for application development and
performance optimisation. Please see:
prstat(1M)
mpstat(1M)
vmstat(1M)
iostat(1M)
cpustat(1M)
lockstat(1M)
plockstat(1M)
ps(1M)
In the Studio 11 software distribution there is also the Workshop Analyzer which is
an excellent tool for evaluation of Application performance. This is described at The latest version of the JVM also has JVMTI built in that gives a rich profiling
environment via the -Xrunhprof option. More information available at Q:
How do I check the RSA performance on my Sun Fire CoolThreads server?
A:
The On-chip Modular Arithmetic Unit of the UltraSPARC T1 processor installed on the Sun Fire T1000 and T2000 server supports RSA (up to 2048bit) and DSA (up to 1024bits).
To quickly check the performance of RSA log into the system and type :
/usr/sfw/bin/openssl speed rsa1024 rsa2048 -engine pkcs11 -multi 32
[ intermediate output snipped..... ]
sign verify sign/s verify/s
rsa 1024 bits 0.0001s 0.0000s
12871.3
45148.1
rsa 2048 bits 0.0004s 0.0000s
2299.6
20425.3
For more information on this topic seehttp://blogs.sun.com/roller/page/chichang1/ Q:
How do I configure my application to use the Crypto Hardware Accelerator of my Sun Fire CoolThreads server?
A:
Sun Fire T1000 and T2000 servers come with a On-chip Crypto Hardware Accelerator that can accelerate RSA (up to 2048 bit) and DSA (up to 1024 bit) operations. The Solaris Operating Environment provides two mechanisms to access this device. The Hardware Accelerator can be accessed from regular PKCS#11 compliant security application via the Solaris Encryption Framework. The second way to access is to let the kernel act as a SSL proxy device and let the application communicate with kernel-proxy in cleartext.
More details about the common usage like how to use with Apache or Java based applications can be found at http://blogs.sun.com/roller/page/enigma/ Server TroubleshootingQ:
I opened the lid of my Sun Fire CoolThreads server and it powered off. Is this expected?
A:
Yes, Sun Fire T1000 and T2000 servers have a trip switch under the cover which automatically powers down a system if the cover is removed. This is to avoid accidents.
Q:
Can I pull out a disk in a Sun Fire T2000 server when the system is running?
A:
Yes as long as the disk does not contain the Solaris root filesystem which would cause a crash. The disks are hot pluggable
Common performance issuesQ:
How do I tell how many threads are actually working in my application?
A:
It is always best to start with a system view. Run mpstat(1M) to determine how many hardware strands are involved in processing
# mpstat 1 CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl 0 0 0 294 329 227 117 60 12 5 0 20 10 90 0 0 1 11 0 0 141 4 73 41 12 5 0 20 11 89 0 0 2 0 0 0 140 2 64 37 1 5 0 20 10 90 0 0 3 0 0 0 130 0 49 32 2 5 0 20 10 90 0 0In the example above we see Hardware Threads 0,1,2 and 3 are all fully consumed To determine how many threads are working in an application first use prstat(1M) to determine the processes and threads that are accumulating cpu PID UNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/LWPID 4448 root 12 44 0.0 0.0 0.0 0.0 43 0.5 2K 460 .1M 0 prstat/1 4447 root 1.2 11 0.0 0.0 0.0 0.1 14 73 54 65 .2M 0 fbench/27 4447 root 1.1 10 0.0 0.0 0.0 0.1 15 74 57 52 .2M 0 fbench/29 4447 root 1.1 10 0.0 0.0 0.1 0.0 15 74 64 53 .2M 0 fbench/19 4447 root 1.1 10 0.0 0.0 0.0 0.4 14 74 49 55 .2M 0 fbench/7 4447 root 1.1 10 0.0 0.0 0.0 0.2 14 74 51 44 .2M 0 fbench/17 4447 root 1.1 9.9 0.0 0.0 0.0 0.3 14 74 48 57 .2M 0 fbench/14 4447 root 1.1 9.9 0.0 0.0 0.0 0.3 14 74 42 61 .2M 0 fbench/9 4447 root 1.1 9.8 0.0 0.0 0.0 0.1 15 74 51 49 .2M 0 fbench/25ps(1M) can also be used to determine how many threads are accumulating cpu. # ps -Lef | grep Take two samples 20 seconds apart and determine which threads in the process gained cpu. This indicates how many are actually involved. Q:
My application doesn't scale past 12 threads, any tuning ideas?
A:
Sometimes applications can have data allignment in the L2 cache
of the UltraSparc T1 processor. A workaround is to add
set consistent_coloring=2
in /etc/system.
Q:
The throughput on my Java application is great but every so often the response time is slow - any tuning ideas?
A:
Pauses in Java throughput are often associated with Garbage
Collection (GC) events. To determine the impact GC add -verbosegc
-XX:+PrintGCTimeStamps -XX:+PrintGCDetails to the JVM command line
To control GC threads add -XX:ParallelGCThreads= In the 1.5.0_06 JVM there are also new flags to run as much of GC as possible in parallel -XX:+UseParallelOldGC and -XX:+UseParallelGC In JVM 1.4.2 it is always a good idea to add -XX:+AggressiveHeap to your JVM parameters. There is an excellent Java Tuning guide at http://java.sun.com/performance/reference/whitepapers/tuning.html ConsolidationQ:
What are my server partitioning options?
A:
As there are 8 cores and 32 threads in Sun Fire T1000 and T2000 server systems. Users often want to carve up the system among different applications.
One option is simply bind a process to a Hardware Thread using pbind(1M) # pbind -b The second option is create a processor set using the psrset(1M) command
# psrset -c 1 2
created processor set 1
processor 1: was not assigned, now 1
processor 2: was not assigned, now 1
Then put the process of interest in the processor set
# psrset -b 1 4281
process id 4281: was not bound, now 1
A more flexible option is Dynamic Resource Pools:http://docs.sun.com/app/docs/doc/817-1592/6mhahuolc Pools of Hardware Strands can be created and Applications assigned to these pools Q:
Will Solaris 10 Containers work on Sun Fire CoolThreads servers?
A:
Yes Solaris Containers work very well with the Sun Fire T1000 and T2000 server. More information is available at
http://www.sun.com/software/solaris/utilization.jsp Containers can be combined with Resource Management to dedicate
cores and Hardware threads to Zones. More information is available at Q:
How do I consolidate multiple applications onto Sun Fire CoolThreads servers?
A:
There are a number of ways to consolidate Applications on a Sun Fire T1000 and Sun Fire T2000 server. The first is to let all the applications run unrestricted on the server. This can achieve the highest utilization of the system but runs the risk a single application may consume all the resources. The second is to create multiple Zones and assign an Application to each. This has the advantage of Application isolation but again can leave to resource starvation. The above two techniques can be combined with processor sets or resource pools to avoid starvation. Hardware threads can be bound to the Zone for instance to ensure quality of service. Q:
I have a Webserver that is currently served by 16 two-way systems. How can I consolidate it on a single Sun Fire CoolThreads server?
A:
As an example say an existing application farm is has a load balancer that load balances incoming requests into a rack of 16 two-way system with an ip-address in the range of 192.168.1.2 ..... 192.168.1.18 Each of these two-way system runs a Servlet/JSP application in a web container. First pick the interface on the Sun Fire T1000 or T2000 server that will connect to the load balancer - let it be ipge2 we plumb the ipge2 interface and assign a ip-address to it - 192.168.1.1. We then create 16 logical interfaces and assign the ip-address of each of the two-way systems.
ifconfig ipge2:1 plumb
ifconfig ipge2:1 192.168.1.2 netmask + broadcast + up
...
...
ifconfig ipge2:16 plumb
ifconfig ipge2:16 192.168.1.17 netmask + broadcast + up
Install a SPARC (R) /Solaris (TM) version of the web container on the Sun Fire CoolThreads server. Create 16 instances of the server, (with Tomcat for instance, simply untar the Tomcat package in 16 different directories, tomcat1...tomcat16, or use the same binary location for 16 different instances)./p> Each web-application server can be bound to a specific ip-address, configure each of the server to bind to one unique logical interface from the above list, start the servers and we have just consolidated 16 two-way systems in a single Sun Fire T1000 or Sun Fire T2000 system. More information at Q:
Where can I find more information on consolidating applications on Sun Fire CoolThreads servers?
A:
Two Sun Blueprints have recently been released that offer some helpful insights into application consolidation on CoolThreads Servers. The first, Consolidating the Sun Store onto Sun Fire T2000 Servers documents the process of migrating the online Sun Store from a Sun Enterprise 10000 with 38 400MHz CPUs onto a pair of Sun Fire T2000 servers (they used two for high availability). The resulting environment of Solaris 10 Containers. They saw an overall reduction of approximately 90 percent in both input power and heat output. The space savings were even more significant. The second blueprint, Web Consolidation on the Sun Fire T1000 using Solaris Containers, gives a detailed hands-on description of the process of building a web-tier consolidation platform on a Sun Fire T1000 with Containers. See also the blog on Consolidating Applications Onto a CoolThreads Server. New to SolarisQ:
Will Linux run on my Sun Fire CoolThreads server?
A:
The following Linux distributions are available for the Sun Fire CoolThreads servers: Ubuntu Linux 6.06 Gentoo Linux 2006.1 Linux support is provided by the distributions' respective communities For more information on running Linux on Sun Fire CoolThreads servers, please click here: http://www.sun.com/servers/coolthreads/tnb/linux.jsp | |||