ADSM Performance Testing in Customer Environments Updated 13 August 1997 emc =================================================================== Note: This package is an informal method for helping to isolate ADSM/NT performance problems. It is only intended for distribution on a case-by-case basis and is not officially supported by IBM. =================================================================== After running the tests please package up the resulting perfdata.txt files along with the perfmon logs and make them available. If you have any questions/concerns please don't hesitate to let either myself or Charlie Nichols of ADSM Performance know. Thank you. Mike Collins ADSM Development emcollin@us.ibm.com =================================================================== CONTENTS 1 PACKAGE CONTENTS 2 CLIENT MACHINE CONFIGURATION 3 SERVER MACHINE CONFIGURATION 4 DIRECT-TO-TAPE POLICY INFORMATION 5 REFERENCE DSM.OPT FILE 6 REFERENCE DSMSERV.OPT 7 SAMPLE TIMING RESULTS 8 FILE SIZE DISTRIBUTIONS ON YOUR SYSTEM 1 PACKAGE CONTENTS ------------------ The included package (perfpkg.exe) is a self-extracting zip file containing the following files: - read1st.txt -- this file - refperf.doc -- documents differences in scsi/eide, fat/ntfs and the files used to create/run standard perf tests. Also provides example perfmon charts. Use wordpad to view. (just type refperf.doc at a cmd prompt) - perfcfg.bat -- creates a standard set of 1k, 10k, 100k, 10m files - perf.bat -- runs tests using the files generated by perfcfg. - dsm.opt -- reference ADSM client options file - dsmserv.opt -- reference ADSM server options file - dscameng.txt -- ADSM client message file - dsmc.exe -- command line backup archive client (ptf6) - wkld\f10240k.1 -- data file used by perfcfg - wkld\f100k.1 -- data file used by perfcfg - wkld\f10k.1 -- data file used by perfcfg - wkld\f1k.1 -- data file used by perfcfg 2 CLIENT MACHINE CONFIGURATION ------------------------------ The following instructions can be used to configure your ADSM client machine for performance testing. Required: A drive with at least 100MB of free space. The examples assume this is drive c. c:\> mkdir perftest c:\> copy perfpkg.exe perftest c:\> cd perftest c:\perftest> perfpkg -d -- expands into the files listed above c:\perftest> notepad dsm.opt -- update the tcp/ip address in the dsm.opt file so it points to your ADSM server. c:\perftest> perfcfg -- this will take a while to complete and will result in about 86MB of data files being created in subdirectories named 1m1k, 10m10k, 25m100k, 50m10m which you can delete after tests are completed. -- Preferably use the included dsmserv.opt server options file or ensure that the parameters match those being used by your ADSM/NT server. -- ensure the adsm server is running and has registered the nodename specified in your dsm.opt file. -- start perfmon logging on the ADSM server machine if looking for bottlenecks (see below) -- Preferably use the included dsm.opt client options file or ensure that the parameters match those being used by your ADSM/Win32 client. c:\perftest> perf c:\perftest> ren perfdata.txt test1.txt -- test1.txt should be a unique name for each test 3 SERVER MACHINE CONFIGURATION ------------------------------ Start the ADSM Server. Ensure there is a 100mb of free stg pool space available if you're using disk storage pools. Ensure that the client used for testing is registered. Optional -- using NT perfmon to detect bottlenecks -------------------------------------------------- To help pinpoint system bottlenecks on the ADSM server machine you can do the following. You can also do something similar on the client machine... Issuing the following commands is one way to prepare your ADSM/NT server machine for this test. -- c:\> diskperf - Look to the first line of output to determine if disk performance counters are enabled. If they are not enabled issue the following command and reboot: c:\> diskperf -y -- Do one of the following: 1) Copy the file called perftest.pml from the set of files extracted in the client setup steps above to the local directory. c:\> start perfmon perftest.pml -- choose Options | Log..., then click the stop logging button (perfmon starts logging right away in this case and we don't want to start until the adsm session is about to start) or 2) c:\> start perfmon - click on the 3rd icon on the toolbar to enable the log view - click the + on the toolbar to add the following objects - Cache - Logical disk - Memory - Network Interface (if it appears -- depends on net config) - Processor - choose Options | Log..., then enter filename: perftest.log (needs a unique name for each test) periodic update: 5 sec -- before issuing "perf" in the steps outlined above for the client do the following on the server machine: - From the main perfmon menu choose: Options | Log... - click the Start logging button -- When the client test completes do the following: - From the main perfmon menu choose: Options | Log... - click the Stop logging button To view the results: -------------------- -- click the first toolbar icon to display the chart view -- From the main perfmon menu choose: Options | Data From... -- Choose log file and enter perftest.log as the filename -- click the + on the toolbar to add objects and counters -- add the following objects counters instance ------------------------------------------------------------------- processor processor time 0 (1 and other if multi-cpu) logical disk disk time all memory available bytes n/a memory cache bytes n/a memory pages/sec n/a network interface bytes total/sec 0 (others if exist - only one should show much activity and that's the one that should be used in other tests ) -- The charts will display the specified info for the logged data. -- you can review the file called refperf.doc using wordpad (or at a command prompt just type in: refperf.doc and wordpad will open) which contains some example output and related information. 4 DIRECT-TO-TAPE POLICY INFORMATION ----------------------------------- Better performance can sometimes be achieved if the ADSM server stores data directly to tape rather than first using disk storage pools. Here are some notes on how to create a policy that allows data to go directly to tape (this set of commands uses the 4mm nt device driver) and at least ptf1 of the server utilities. - Ensure that your NT 4mm device driver is running. - Look in the ADSM server utilities diagnostic section(red cross button) to determine the name of the tape drive being used (eg \\.\Tape0) Update the define drive statement if the drive is other than tape0. - label a tape (you can use the server utilities) - mount the tape in the drive - you may want to backup a file or two to prime the backup, otherwise we'll measure mount time. - Save the following commands to a file called perfcfg.mac in the win32app\ibm\ADSM\saclient directory. - Ensure that the ADSM server is running (handshake button in the server utilities) - from the saclient directory, issue: dsmadmc -id=admin -pa=admin macro perfcfg.mac - go through the steps above to run perf.bat in this configuration define library GENERICTAPELIBMAN0 libtype=manual define devclass GENERICTAPECLASS0 devtype=GENERICTAPE library=GENERICTAPELIBMAN0 define drive GENERICTAPELIBMAN0 GENERICTAPEDRIVE0 device=\\.\Tape0 define stgpool GENERICTAPEPOOL0 GENERICTAPECLASS0 maxscratch=100 define domain direct_generictapepool0 define policy direct_generictapepool0 direct_policy define mgmtclass direct_generictapepool0 direct_policy direct_mgmtclass define copygroup direct_generictapepool0 direct_policy direct_mgmtclass type=backup dest=generictapepool0 define copygroup direct_generictapepool0 direct_policy direct_mgmtclass type=archive dest=generictapepool0 assign defmgmtclass direct_generictapepool0 direct_policy direct_mgmtclass validate policy direct_generictapepool0 direct_policy activate policy direct_generictapepool0 direct_policy update node client domain=direct_generictapepool0 (note that perf.bat ref. above uses the nodename of client) 5 REFERENCE DSM.OPT FILE ------------------------ *======================================================= * perfpkg ADSM client dsm.opt file *======================================================= COMMmethod TCPIP TCPServeraddress 200.12.34.21 TCPPort 1500 TCPBuffsize 32 TCPWindowsize 64 REPlace Yes SUbdir Yes TXNBytelimit 2048 SLOWINCR No COMPression No BACKUPReg No 6 REFERENCE DSMSERV.OPT ----------------------- *======================================================= * perfpkg ADSM server dsmserv.opt file *======================================================= *======================================================= * tcp/ip *======================================================= commmethod tcpip tcpport 1500 tcpwindowsize 64 *======================================================= * ipx/spx *======================================================= *commmethod ipxspx ipxsocket 8522 ipxbuffersize 32 *======================================================= * netbios *======================================================= *commmethod netbios LanAdapter 0 netbiosname NTSERV31 netbiosbuffersize 32 netbiossessions 16 *======================================================= * namedpipe *======================================================= *commmethod namedpipe NAMEDPIPENAME \\.\pipe\adsmpipe maxsessions 16 bufpoolsize 2048 logpoolsize 512 txngroupmax 40 movebatchsize 1000 movesizethresh 500 expinterval 0 commtimeout 60 idletimeout 5 msginterval 5 eotblock 0 LANGUAGE AMENG 7 SAMPLE TIMING RESULTS ----------------------- These timings were done using and due to the slow hardware should be considered low numbers: client - IBM thinkpad 755cd, P75, 24MB RAM, IDE HD server - Dual P133, 64MB RAM, IDE HD, Direct to disk 10mb 10base2 ethernet, ne2000 (slow) clone adapters. SUMMARY 1MB of 1KB files : 27kb/sec 10MB of 10KB files : 174kb/sec 25MB of 100KB files: 406kb/sec 50MB of 10MB files : 457kb/sec RAW DATA (perfdata.txt file generated by perf.bat on the client) ADSTAR Distributed Storage Manager Command Line Backup Client Interface - Version 2, Release 1, Level 0.6 (C) Copyright IBM Corporation, 1990, 1996, All Rights Reserved. Total number of objects inspected: 1,024 Total number of objects backed up: 1,026 Total number of objects updated: 0 Total number of objects rebound: 0 Total number of objects deleted: 0 Total number of objects failed: 0 Total number of bytes transferred: 1,035.0 KB Data transfer time: 0.37 sec Data transfer rate: 2,797.29 KB/sec Average file size: 1,028 Elapsed processing time: 0:00:39 ADSTAR Distributed Storage Manager Command Line Backup Client Interface - Version 2, Release 1, Level 0.6 (C) Copyright IBM Corporation, 1990, 1996, All Rights Reserved. Total number of objects inspected: 1,024 Total number of objects backed up: 1,025 Total number of objects updated: 0 Total number of objects rebound: 0 Total number of objects deleted: 0 Total number of objects failed: 0 Total number of bytes transferred: 10.0 MB Data transfer time: 4.91 sec Data transfer rate: 2,087.78 KB/sec Average file size: 10,237 Elapsed processing time: 0:00:59 ADSTAR Distributed Storage Manager Command Line Backup Client Interface - Version 2, Release 1, Level 0.6 (C) Copyright IBM Corporation, 1990, 1996, All Rights Reserved. Total number of objects inspected: 256 Total number of objects backed up: 257 Total number of objects updated: 0 Total number of objects rebound: 0 Total number of objects deleted: 0 Total number of objects failed: 0 Total number of bytes transferred: 25.0 MB Data transfer time: 18.71 sec Data transfer rate: 1,368.19 KB/sec Average file size: 99.6 KB Elapsed processing time: 0:01:03 ADSTAR Distributed Storage Manager Command Line Backup Client Interface - Version 2, Release 1, Level 0.6 (C) Copyright IBM Corporation, 1990, 1996, All Rights Reserved. Total number of objects inspected: 5 Total number of objects backed up: 6 Total number of objects updated: 0 Total number of objects rebound: 0 Total number of objects deleted: 0 Total number of objects failed: 0 Total number of bytes transferred: 50.0 MB Data transfer time: 33.56 sec Data transfer rate: 1,525.81 KB/sec Average file size: 8,533.3 KB Elapsed processing time: 0:01:52 8 FILE SIZE DISTRIBUTIONS ON YOUR SYSTEM ---------------------------------------- The above tests use standard file sizes and numbers of files so that comparisons can be made between different systems. Each system will generally have a unique distribution of files and file sizes. A simple (again unsupported) utility is included that can help provide file distribution information for a given machine. The easiest way to use the program is to go to the top of the directory you want to backup and then issue a dir statement to catch the set of files located below it. For example, to gather information on an entire c drive issue: c:\> dir/s > cdrive.txt cdrive.txt now contains a list of all files on your c drive. You can now run the utility against cdrive.txt to determine how many files fall into each category used in the perf. test above. The numeric parameters at the end are the kb/sec values obtained above for 1k, 10k, 100k, 10mb files. The estimated time is a real rough estimate and uses a less than obvious algorithm to try to be more realistic in the estimate. This program does not include support for include/exclude lists either and just provides some more insight into a particular system and possible reasons for observed ADSM performance. Issuing timest by itself will display a usage statement. To use it with the numbers obtained above the following command could be issued: C:\perftest> timest -d cdrive.txt 26 173 406 457 ============================================================= Range # # Bytes Time Bytes Files Bytes Per Sec (sec) ============================================================= 0..< 1KB 7908 12060126 26624 452 1KB..< 10KB 5004 96081375 177152 542 10KB..< 100KB 2150 324402231 415744 780 100KB and up 391 1010361054 467968 2159 Total size for all 15453 files: 1442904786. Average file size: 93373 Estimated Time: 1 hours 5 mins 33 sec Estimated Time based on average file size: 0 hours 57 mins 50 sec