Showing posts with label performance. Show all posts
Showing posts with label performance. Show all posts

Friday, November 3, 2017

SharePoint Performance Optimization and Scale

2016

Optimize Performance
https://technet.microsoft.com/en-us/library/jj721440(v=office.16).aspx
Planning Performance
https://technet.microsoft.com/en-us/library/cc262971(v=office.16).aspx

2013

How To Calculate Number of web front end servers in a SharePoint farm 2013 and 2010
http://abhayajoshi.blogspot.com/2014/01/how-to-calculate-number-of-web-front_24.html

Capacity management and sizing for SharePoint Server 2013
https://technet.microsoft.com/en-us/library/cc261700(v=office.16).aspx

Optimize Performance
https://technet.microsoft.com/en-us/library/jj721440.aspx
Planning Performance
https://technet.microsoft.com/en-us/library/cc262971(v=office.15).aspx

2010

Scaling SharePoint
https://technet.microsoft.com/en-us/library/cc261795(v=office.12).aspx

Interacting with Data Collector Sets via Powershell
http://blogs.technet.com/b/brad_rutkowski/archive/2009/02/18/interacting-with-data-collector-sets-via-powershell.aspx
http://social.technet.microsoft.com/wiki/contents/articles/7926.sharepoint-2010-tips-for-dealing-with-performance-issues.aspx
Great list of Links on SharePoint Performance
http://www.sharepointedutech.com/2011/10/09/spc373-performance-tuning-sharepoint-2010/
http://www.slideshare.net/joeloleson/sharepoint-performance-optimization-in-10-steps-for-the-it-professional

Developer Performance Tools (Visual Studio Solutions)
SPDisposeCheck is a tool that helps developers and administrators check custom SharePoint solutions that use the SharePoint Object Model helping measure against known Microsoft dispose best practices http://blogs.msdn.com/b/rogerla/archive/2010/12/13/announcing-spdisposecheck-v14-0-4762-1000-update-for-sharepoint-development.aspx

IIS
w3wp.exe using too much memory and resources
http://blog.whitesites.com/w3wp-exe-using-too-much-memory-and-resources__633900106668026886_blog.htm

SAN
Great Video and scripts to help diagnose issues (SAN or not)http://www.brentozar.com/archive/2011/08/how-prove-its-san-problem-webcast-video/

SQL Performance Tools

SQLIOSim - For Microsoft SQL Server 2005, SQLIOSim was shipped as a separate download package. Starting with SQL Server 2008, SQLIOSim is included with the SQL Server product installation http://support.microsoft.com/kb/231619
SQLIO - Microsoft Utility used to determine the I/O capacity of a given configuration.
http://www.microsoft.com/download/en/details.aspx?id=20163

Other Performance Tools

Logman and powershell
http://colleenmorrow.com/2012/02/13/using-powershell-to-deploy-performance-monitor/
Team Foundation Server with Test Edition
Jumble
Grinder
OpenSTA
Fiddler2
webpagetest.org
perfmon
SQL Server Management Studio
Firebug and Firebug lite
HTTP Watch
IE Dev Tool Bar
Temp DB
Separate Disk
Watch Disk Space
Compact
Watch Memory
GZip

OLD

http://blogs.msdn.com/b/sanjaynarang/archive/2009/04/18/sharepoint-performance-stress-load-testing.aspx

Wednesday, April 29, 2015

SharePoint Security

Security 101

Concerns

Edward Snowden, SharePoint, and Security
https://www.credera.com/blog/technology-insights/microsoft-solutions/edward-snowden-sharepoint-security/

Pentest – Phases

  1. Recon
  2. Scan
  3. Gain Access
  4. Maintain Access
  5. Cleanup
  6. Pivot

https://en.wikipedia.org/wiki/Penetration_test
https://windsorwebdeveloper.com/comptia-pentest-study-guide/

Tools

https://www.kali.org/
https://nmap.org/

Tutorials – NMAP Zenmap MegaPing
https://www.youtube.com/channel/UCtudLj18oXlrzrPHqKC5bLA

News

WikiLeaks CIA Files: The 6 Biggest Spying Secrets Revealed By the Release of 'Vault (2017)

https://yro.slashdot.org/story/17/03/07/2124251/wikileaks-cia-files-the-6-biggest-spying-secrets-revealed-by-the-release-of-vault-7

“”1,2,3, and 5 were revealed with the documents that Edward Snowden released to The Guardian and was subsequently detailed in at least a couple of the books written about that leak including Data and Goliath by Bruce Schneier and The Snowden Files by Luke Harding.

The NSA and CIA also maintain a cache of vulnerabilities they have discovered but kept to themselves and not shared with Microsoft, Android/Google or Apple as well as the other operating system vendors so they can perform surveillance on any company running those OS.

This activity has been approved by the FISA court all in the name of Homeland security but not necessarily restricted to that activity.” George

2016

Plan security hardening for SharePoint Server 2016

https://technet.microsoft.com/en-us/library/cc262849(v=office.16).aspx

MS16-101 Prevents SharePoint From Changing Managed Account Passwords

https://thesharepointfarm.com/2016/09/ms16-101-prevents-sharepoint-from-changing-managed-account-passwords/

2013/2010

Technet on Planning Security Hardening (2010 or 2013)

https://technet.microsoft.com/en-us/library/cc262849(v=office.15).aspx

https://technet.microsoft.com/en-us/library/cc262849(v=office.14).aspx

Good Article on SharePoint Groups vs. AD Groups and effect on Search Crawls
http://blogs.msdn.com/b/kaevans/archive/2013/05/06/clarifying-guidance-on-sharepoint-security-groups-versus-active-directory-domain-services-groups.aspx

Preview as user (Third Party)
http://blog.mastykarz.nl/previewing-pages-content-targeting-user-segments-sharepoint-2013/

Updates
Interesting Vulnerability Site on SharePoint
Lists - http://www.cvedetails.com/vulnerability-list/vendor_id-26/product_id-11116/Microsoft-Sharepoint-Server.html
Stats - http://www.cvedetails.com/product/11116/Microsoft-Sharepoint-Server.html?vendor_id=26

Legacy


Great Security Articles by Liam Cleary
https://www.helloitsliam.com/

PenTest (Part 1 and 2)
https://www.helloitsliam.com/2014/11/06/sharepoint-2013-pentest-part-1/
https://www.helloitsliam.com/2014/11/10/sharepoint-2013-pentest-part-2/

https://www.helloitsliam.com/2014/11/06/10-ways-to-a-more-secure-sharepoint-infographic/

”SO you wanna hack SharePoint” Presentation - TechEd
http://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fsessions%2fteched%2fna%2f2013%2fATC-B315.pptx

OLD LINKS – Broken due to new site
http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=121
Is SharePoint Secure?
part 1
http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=100
part 2 http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=101
part 3 http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=103
part 4 http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=105
Is SharePoint Vulnerable
http://blog.helloitsliam.com/Lists/Posts/Post.aspx?ID=116

Effect of SharePoint Security Groups and/or AD Security Groups on Search Crawl Performance
http://blogs.msdn.com/b/kaevans/archive/2013/05/06/clarifying-guidance-on-sharepoint-security-groups-versus-active-directory-domain-services-groups.aspx

Best practices for using fine-grained permissions in SharePoint Server 2013
http://technet.microsoft.com/en-us/library/gg128955.aspx

Troubleshoot common fine-grained permissions issues for SharePoint Server 2013
http://technet.microsoft.com/en-us/library/dn169566.aspx

UAG - SharePoint Publishing Guide
http://technet.microsoft.com/en-us/library/dd857299.aspx

Firewall Ports
azure acs
http://msdn.microsoft.com/en-us/library/windowsazure/jj136814.aspx
office 365
http://blogs.technet.com/b/educloud/archive/2011/11/30/what-firewall-ports-do-i-need-open-to-connect-to-office-365-for-education.aspx
http://ahandyblog.wordpress.com/cloud-technologies/firewall-ports-for-office-365/

2010

Articles

Copy Permissions Between Site Collections Using AD Groups
https://social.technet.microsoft.com/wiki/contents/articles/8138.sharepoint-2010-copying-permissions-between-site-collections.aspx

Fine Grained Permissions Guide
http://technet.microsoft.com/library/gg128953(office.14).aspx

More from SharePoint Galaxy

Authentication
http://thecloudengineer.blogspot.com/2013/02/authentication.html

TMG UAG
http://thecloudengineer.blogspot.com/2011/07/golden-5-rules-on-sharepoint-security.html

Document Security
http://thecloudengineer.blogspot.com/2011/09/sharepoint-document-security.html

SharePoint Designer
http://thecloudengineer.blogspot.com/2012/03/sharepoint-designer-security.html

Books

Actual book http://www.amazon.com/Office-Sharepoint-Security-Microsoft-Corporation/dp/0735626545

Free Ebook http://technet.microsoft.com/en-us/library/cc287889(v=office.12).aspx

Friday, October 10, 2014

AppFabric Caching and SharePoint

PowerShell

Update Confusion Resolved http://blogs.technet.com/b/speschka/archive/2014/02/06/update-to-guidance-for-patching-appfabric-on-sharepoint-2013-distributed-cache-servers.aspx
NOTE After AppFabric and SharePoint are installed on the server, AppFabric will continue to be updated independently from SharePoint. SharePoint Updates do not update the AppFabric software running on the SharePoint 2013 server.
http://support.microsoft.com/kb/2843251
CU4 AppFabric 1.1 http://support.microsoft.com/kb/2800726
Use-CacheCluster
Get-AFCacheHostConfiguration –ComputerName (hostname)-CachePort "22233"
image
Note: This system highwatermark 99% is problematic. Cache is too small and filling up!



Reference


http://blogs.msdn.com/b/besidethepoint/archive/2013/03/27/appfabric-caching-and-sharepoint-1.aspx

AppFabric Caching and SharePoint: Concepts and Examples (Part 1) - Beside the Point - Site Home - MSDN Blogs

A discussion of SharePoint-related concepts from multiple perspectives.

Read more...

http://blogs.msdn.com/b/besidethepoint/archive/2013/03/27/appfabric-caching-and-sharepoint-2.aspx

AppFabric Caching (and SharePoint): Configuration and Deployment (Part 2) - Beside the Point - Site Home - MSDN Blogs

A discussion of SharePoint-related concepts from multiple perspectives.

Read more...

Good Article

http://technet.microsoft.com/en-us/library/jj219613%28v=office.15%29.aspx

Wednesday, October 2, 2013

SharePoint Performance … Presentations Blogs and More

2013

TechNet

SQLIO - Disk Subsystem Benchmark Tool

https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=20163

http://www.brentozar.com/archive/2008/09/finding-your-san-bottlenecks-with-sqlio/

Plan for Caching and performance in SharePoint Server 2013
http://technet.microsoft.com/en-us/library/ee424404.aspx

more on caching from the cloud engineer
http://thecloudengineer.blogspot.com/2012/06/caching.html

Performance Blogs

Free Whitepaper – Maximizing SQL 2012 Performance for SharePoint 2013
http://sharepoint-community.net/profiles/blogs/free-whitepaper-maximizing-sql-2012-performance-for-sharepoint-20


Performance Presentations

Bill Baer - Tuning SQL Server 2012 for SharePoint 2013: (03) Server Settings for SQL Server
Mod 01: Key SQL Server and SharePoint Server Integration Concepts
Mod 02: Best Practices for SQL Server Database Settings
Mod 03: Server Settings for SQL Server
Mod 04: SQL Server and SharePoint Availability

Database Configuration for Maximum SharePoint Performance (Video, Slide and PowerShell Script)
https://bassplayerdoc.wordpress.com/2013/12/23/database-configuration-for-maximum-sharepoint-performance-video-powershell-script/

2010

Issues Uploading Large Files To SharePoint
http://blogs.technet.com/b/praveenh/archive/2012/11/16/issues-with-uploading-large-documents-on-document-library-wss-3-0-amp-moss-2007.aspx

Sean McDonough from Idera - http://secretsofsharepoint.com/cs/blogs/tips/archive/2010/10/13/tuning-backup-restore-in-sharepoint-2010.aspx

Eric Shupps from Idera
 
http://www.idera.com/Downloads/WhitePapers/10-Steps-Optimize-SharePoint-Performance.pdf

Separate User and Database Traffic
Isolate Search Indexing
Adjust SQL parameters
- Provision the major SharePoint databases onto separate physical disks
- Reduce DB Fragmentation – limit use of Autogrowth/Autoshrink
Defragment Database Indexes
Distribute User Data across multiple Content Databases
Minimize page Size
Configure IIS Compression
Take advantage of Caching – Cache Profiles, Object Cache
Manage page Customizations
Limit Navigation Depth

Chris McNulty from Quest - http://www.chrismcnulty.net/SitePages/Home.aspx

Horsepower

don’t forget about paging file 1-2x
WFE Tier 8-16 GB RAM
Virtual OK but watch for other services
APP Tier - 8-12 GB RAM
But do not forget about CPU.  Service like search can be very heavy with search threads.
DB Tier – 8-24 GB RAM
I/O – Not good for Virtual without proper setup

SQL Setup – Very Important

Set growth to 50-100 MB clumps not a percentage – will slow growth
Presize TempDB to 20% of Content DB
Size
Small less than 100 users but can grow if just basic collaboration site
Medium 100 – 10,000 users and 10,000 to 1 Million docs
Large 10,000 + and 1Million+ Docs

Limits

2 GB file size and 30 Million Docs in library

Disk Growth

except 10-20%
Without Maintenance small SP database will grow to 1 TB
Reduce size using EBS/RBS but third party recommend such as Avepoint or Metalogix
RAID 5 or RAID 10

Perf Tools

Dev Dashboard
1/4 to 1/2 second response ok –
Helps to troubleshoot more memory/sql query/web part issues

Logging

WSS Logging Database will grow to about 10-20 GB
ULS view or use views in SSMS of the WSS_Logging Database using T-SQL

Optimize

Blob Cache for static items that only get refreshed every 24 hours (web.config)  IIS 7 and IE 8
IOmeter Open Source testing tool or use Idera tools

2007

http://technet.microsoft.com/en-us/library/ee721075(v=office.12).aspx

Tuesday, August 28, 2012

SharePoint PAL

More from SharePoint Galaxy

http://thecloudengineer.blogspot.com/2012/05/pal.html

So are you using PAL to analyze your SharePoint Servers?

Capture

If so you need the correct SharePoint Counters.  So after looking at the threshold files I have made a list for both SharePoint and FAST.

So when creating your Data Collection Set here are the counters should you add the following for SharePoint.

Quick System Overview

IIS

ASP.NET

System Overview

DotNet

FS4SP Counters

After analysis of the PAL threshold files I have a list below for FAST for SharePoint threshold file you should also add

Capture

FAST

SQLServer

Wednesday, April 25, 2012

Monitoring I/O Performance

I found this interesting article on I/O performance in the readme file for SQLIO. I have republished it here.
Reference http://www.microsoft.com/download/en/details.aspx?id=20163

Monitoring I/O Performance

Using SQLIO to Stress Test an I/O Subsystem

Summary
The purpose of this document is to provide guidance on using SQLIO.exe to determine the Input/Output capacity of a disk subsystem. This document is focused on how to test configurations for Storage Area Network (SAN) environments however the same concepts can be applied to more traditional direct attach storage environments.
It is good practice to benchmark the I/O subsystem using an I/O stress tool to determine the hardware’s capacity and ensure the system is tuned for optimal performance before deploying SQL Server. Doing this initial testing helps to identify any hardware or driver related performance issues early on, before the complexity of SQL Server is introduced. SQLIO.exe is a tool which can be used to determine the I/O capacity of a given hardware configuration. The purpose of SQLIO is not to simulate I/O patterns of SQL Server but rather to test a variety of I/O types and sizes and determine the capacity of an I/O subsystem.
Determining I/O Capacity
Below are some concepts which should be applied when using any I/O stress tool. Below, ‘path’ refers to a unique I/O path (this can be used interchangeably with LUN/Disk/Volume depending on the system configuration). When testing the I/O system you should consider the following:
1. Test a variety of I/O types and sizes. You should test a combination of I/O sizes for read/write and sequential/random. Be sure to include I/O sizes of 8K, 64K, 128K, and 256K. In addition, different levels of outstanding I/O’s can be tested to determine how this affects the overall achievable performance.
2. Make sure the total size of the test files used in each test is significantly larger than the amount of cache on the SAN. Using small test files can result in skewed results since the entire file may be cached on the SAN. Consider using test files that are at least 2 to 4 times the size of any data cache on the SAN. Although our focus is on benchmarking SAN storage this concept would apply to any cache offered by other technologies (i.e. Network Attached Storage and Direct Attached Storage).
3. Make sure you understand your specific hardware configuration and the theoretical limits for the given hardware. Be sure to consider specific details of your configuration which will impact this (ex. using static mapping of LUNs to HBAs vs. using multipathing software).
4. Test each I/O path individually and then test combinations of the I/O paths. Ideally, there should be a linear scale up of throughput (MB/s) as additional I/O paths are added to the test. This, of course, is dependent on the hardware throughput limitations.
5. Short test runs (5-10 minutes) are okay for initial testing, however if potential problem areas are discovered longer tests should be run. Many of the larger storage systems are self tuning and may require a workload be run for a period of time before an optimal performance level is reached. Discuss with your particular SAN vendor how long they recommend running tests.
6. Allow some time in between each I/O type you test to allow the I/O system to return to an idle state. Following a large amount of write activity, it may take some time to flush all pending write requests from cache to disk. This could impact results of subsequent tests if no wait time is included between tests. Waiting one minute between tests is acceptable for most systems however you should consult your SAN vendor to determine what is acceptable on their specific hardware.
7. Store all of the benchmark data in order to compare with the SQL Server I/O throughput numbers.
Depending on the capabilities of the tool, you can also attempt to simulate SQL Server I/O patterns. This should be done on a case-by-case basis for the workload type you are attempting to simulate.

SQLIO
As previously mentioned, SQLIO.exe is a tool provided by Microsoft which can be used to determine the I/O capacity of a given I/O configuration. SQLIO is provided ‘as is’ and there is no support offered for any problems encountered when using the tool. Please refer to the EULA.doc for the license agreement for using this tool.
Specific Instructions for using SQLIO.exe
Below are instructions on how to use SQLIO to test the hardware capacity of a given configuration. Here, ‘path’ refers to a unique I/O path (this can be used interchangeably with LUN/Disk/Volume depending on the configuration). For a complete set of the options available to SQLIO see readme.txt or run ‘SQLIO.exe -?’ from a command line.
When using SQLIO to test a storage configuration, all of the I/O paths should be tested individually and then combinations of these paths should be tested together. Testing the I/O paths in this manner will enable you to determine if there are any problems with a given path and if the cumulative throughput is what is expected given the hardware being used.
Below is sample of the syntax which could be used in a batch file to automate running SQLIO through a series of tests varying I/O types and sizes. This sample should be modified as needed based on your specific testing needs.
sqlio -kW -s10 -frandom -o8 -b8 -LS -Fparam.txt
timeout /T 60
sqlio -kW -s360 -frandom -o8 -b64 -LS -Fparam.txt
timeout /T 60
sqlio -kW -s360 -frandom -o8 -b128 -LS -Fparam.txt
timeout /T 60
sqlio -kW -s360 -frandom -o8 -b256 -LS -Fparam.txt
timeout /T 60
sqlio -kW -s360 -fsequential -o8 -b8 -LS -Fparam.txt
timeout /T 60
sqlio -kW -s360 -fsequential -o8 -b64 -LS -Fparam.txt
timeout /T 60
sqlio -kW -s360 -fsequential -o8 -b128 -LS -Fparam.txt
timeout /T 60
sqlio -kW -s360 -fsequential -o8 -b256 -LS -Fparam.txt
timeout /T 60
sqlio -kR -s360 -frandom -o8 -b8 -LS -Fparam.txt
timeout /T 60
sqlio -kR -s360 -frandom -o8 -b64 -LS -Fparam.txt
timeout /T 60
sqlio -kR -s360 -frandom -o8 -b128 -LS -Fparam.txt
timeout /T 60
sqlio -kR -s360 -frandom -o8 -b256 -LS -Fparam.txt
timeout /T 60
sqlio -kR -s360 -fsequential -o8 -b8 -LS -Fparam.txt
timeout /T 60
sqlio -kR -s360 -fsequential -o8 -b64 -LS -Fparam.txt
timeout /T 60
sqlio -kR -s360 -fsequential -o8 -b128 -LS -Fparam.txt
timeout /T 60
sqlio -kR -s360 -fsequential -o8 -b256 -LS -Fparam.txt
Some of the more commonly used parameters for SQLIO are discussed below (again refer to the readme.txt or ‘SQLIO.exe -?’ for a complete listing).
Table 1 – Commonly used SQLIO.exe options
Option Description
-o Specify the number of outstanding I/O requests. Increasing the queue depth may result in a higher total throughput. However, increasing this number too high may result in problems (described in more detail below). Common values for this are 8, 32, and 64.
-LS Capture disk latency information. Capturing latency data is recommended when testing a system.
-k Specify either R or W (read or write).
-s Duration of test (seconds). For initial tests, running for 5-10 minutes per I/O size is recommended to get a good idea of I/O performance.
-b Size of the IO request in bytes.
-f Type of IO to issue. Either ‘random’ or ‘sequential’.
-F Name of the file which will contain the test files to run SQLIO against.
**Note** SQLIO currently has problems when multiple threads are used to test many I/O paths at one time. The total number of threads is the cumulative total of threads used for all test files. If too many threads are used during a single test the tool may experience random failures. Reducing the number of threads per target test file (in the parameter file) is a workaround for this problem.
The sample script above will run a series of tests against the drive or drives specified in the “param.txt” file. This file should reside in the same directory as SQLIO.exe. Here is a sample param.txt that tests more than one path (or LUN) at a time:
c:\sqlio_test.dat 4 0x0 100
d:\sqlio_test.dat 4 0x0 100
The options on each line of the param.txt file are as follows:
  • <Path to test file> Full path and name of the test file to be used.
  • <Number of threads (per test file)> Recommend setting this equal to the number of CPUs on the host. Possible exception is when testing many paths at one time. See note above.
  • <Mask > Set to 0x0
  • <Size of test file in MB> Ideally, this should be large enough so that the test file will be larger than any cache resident on the SAN (or RAID controller). Two to four times the size of any cache allocated is a good rule of thumb to follow.
Tests should be run multiple times with different parameter files (one for each individual path and one for each combination of paths). When testing combinations of paths, add more paths on each test until all paths are used at one time. To comment out a specific test file path prefix the line with‘#’.
Interpreting the Results of SQLIO
SQLIO will return and summarize certain performance data during the test run. When running the test you can redirect the output of SQLIO to a text file to capture the performance information. Using the options shown above, SQLIO will return performance statistics for the total throughput (MB/sec), the average disk latency (milliseconds) and the number of I/O’s per second. In most cases this should be enough information to get a basic understanding of the system’s current I/O performance. If more detailed information is needed Windows Performance Monitor and/or SAN specific monitoring tools can be used.
When interpreting the results from SQLIO keep in mind the following:
· Larger I/O sizes normally result in higher latencies.
· Ideally you should see some increase in your throughput as you add more data paths to your test. You may also see increased total throughput as the size of the I/O is increased. This is, however, dependent on the specifics of your particular configuration.
· Sometimes it can be helpful to share the results from your SQLIO tests with your SAN vendor since they have detailed knowledge about how the equipment should perform for different I/O types, RAID levels, etc…
SQLIOStress
Another tool which is available to stress the I/O subsystem is SQLIOStress.exe. This tool differs from SQLIO in that it is designed to simulate the I/O patterns of SQL Server. SQLIO should be used to determine the maximum capacity of a given I/O configuration. Then SQLIOStress can be used to determine how SQL Server I/O might perform under this configuration. This tool can also be very useful as a troubleshooting tool if your current SQL Server installation is experiencing I/O failures and you think you may have a hardware problem.
To download this tool and obtain more information on tool usage, see the following article:
231619 HOW TO: Use the SQLIOStress Utility to Stress a Disk Subsystem
http://support.microsoft.com/?id=231619

Monitoring I/O Performance

The Windows Performance Monitor tool can be used to get detailed information about I/O performance on a system. Table 2 contains some detailed information regarding some of the I/O specific performance monitor counters you should consider regularly monitoring and how to interpret them. The counters below can be captured by monitoring either Physical or Logical Disk counters. The choice of which object to use should be based on the specific storage configuration that is being tested. In some cases capturing Logical Disk counters will result in more detailed performance data.
Table 2 - I/O related performance counters and their meanings.
Performance Monitor Counter Description
Disk Reads/sec & Disk Writes/sec Number of I/O’s being issued against a particular disk. This number varies based on the size of I/O’s issued. Practical limit of 100-140/sec per spindle, however consult with hardware vendor for more accurate estimation.
Average Disk/sec Read & Average Disk/sec Write Measure of disk latency. Lower values are better but this can vary and is dependent on the size of I/O’s being issued as well as the workload characteristics. Numbers also vary across different storage configurations (SAN cache size/utilization can impact this greatly).
On well-tuned OLTP systems deployed on high performance SAN’s ideal values would be in the range of < 2 ms for Log and 4-10 ms for Data. DSS (decision support system) type workloads may result in higher latencies (30+ ms).
Long running values > 100ms could be an indication of I/O problems. This, however, is dependent on the workload’s characteristics and hardware used . Consider in combination with what is normal for your particular system.
Average Disk Bytes/Read & Average Disk Bytes/Write Size of I/O’s being issued. Impacts disk latency. Large I/O sizes may result in slightly higher latency. When used with SQLIO this value should correspond to the I/O size being issued during the test. When used to monitor SQL Server, this will tell you the average size of the I/O’s SQL is issuing to fill query requests.
Average Disk Queue Length The general rule of thumb is <=2 per spindle but this is hard to measure due to virtualization of storage in most SAN environments. Look for higher than average disk queue length in combination with higher than average disk latencies. This combination could be an indication that the SAN’s cache is being over utilized.
Disk Read Bytes/sec & Disk Write Bytes/sec Measure of the total throughput for a particular disk or LUN.
It is important to note that while Performance Monitor will give you a very accurate picture of your I/O subsystems current performance, it may not provide enough information to successfully resolve all I/O performance issues in SAN environments. Performance Monitor can be used to diagnose I/O performance problems, however resolution may lie in the SAN or in the HBA driver level which can be more challenging to diagnose.
The ability and level of disk array monitoring varies from vendor to vendor but most, if not all SAN vendors, offer some type of monitoring on the backend. Longer test runs may be needed to capture information on the SAN level. This is dependent on the frequency at which those tools capture data. It is advised that you familiarize yourself with the monitoring capabilities of your specific SAN. Some of the points of interest in monitoring the SAN are utilization of a specific port(s), write pending levels, % cache utilization, internal processor utilization, LUN activity and physical spindle activity. All of these are potential bottlenecks for performance.
In addition, you should work closely with your SAN vendor to determine the correct HBA driver and firmware versions as well as the correct settings for the HBA drivers. One of the settings on the HBA level that may need some adjustment is QueueDepth. It is recommended that you work with your SAN vendor and do careful testing to ensure that the optimal HBA values are set.