{"id":5215,"date":"2017-10-24T11:21:44","date_gmt":"2017-10-24T16:21:44","guid":{"rendered":"https:\/\/www.poweradmin.com\/blog\/?p=5215"},"modified":"2017-10-09T11:30:08","modified_gmt":"2017-10-09T16:30:08","slug":"performance-characteristics-to-watch-on-iis","status":"publish","type":"post","link":"https:\/\/www.poweradmin.com\/blog\/performance-characteristics-to-watch-on-iis\/","title":{"rendered":"Performance Characteristics To Watch On IIS"},"content":{"rendered":"<p><span style=\"font-family: verdana, geneva, sans-serif;\"><a href=\"https:\/\/www.poweradmin.com\/blog\/wp-content\/uploads\/2017\/10\/monitoring-iis-web-servers.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-5217 alignright\" src=\"https:\/\/www.poweradmin.com\/blog\/wp-content\/uploads\/2017\/10\/monitoring-iis-web-servers.jpg\" alt=\"\" width=\"300\" height=\"205\"><\/a>Internet Information Services (IIS, which was formerly known as Internet Information Server) is a flexible, general-purpose web server originally created by Microsoft for its Windows NT family of network operating systems. IIS supports a number of web protocols, including HTTP, HTTPS, FTP, FTPS, SMTP and NNTP.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">IIS is used on Windows systems to provide web functionality, by serving requested HTML pages or files. And like any web platform, there are certain parameters and conditions which may be monitored to help optimize its performance, and ensure its availability and security. We\u2019ll be considering the important ones to watch, in this article.<\/span><\/p>\n<h2><span style=\"font-family: verdana, geneva, sans-serif;\">IIS Basics<\/span><\/h2>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">A Windows-based web server that\u2019s fitted with IIS accepts requests from remote client computers and gives the appropriate response, enabling the sharing and delivery of information across LANs or local area networks (e.g. corporate intranets) and WANs (wide area networks, like the internet). This information may be delivered in various forms: HTML coded webpages, text documents, graphics files, uploads, downloads, file exchanges, etc.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Internet Information Services uses the body of standard internet protocols and languages to deliver different forms of content. So Hypertext Markup Language (HTML) is used in the creation of text, webpage buttons, image placeholders, hyperlinks, and direct interactions or page behaviors. Exchanges of data between web servers and users take place via the Hypertext Transfer Protocol (HTTP). Encryption of data in transit is performed using Transport Layer Security (TLS) or Secure Sockets Layer (SSL). File Transfer Protocol (FTP) and its secure version FTPS are (logically enough) used to transfer files. And so on.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Internet Information Services operates with the Active Server Page or ASP.NET Core framework, a server-side script engine which produces interactive webpages such as blog platforms or content management systems. The ASP.NET Core application acts as a mediator between requests sent to the web server and the processed response sent back to the client.<\/span><\/p>\n<h2><span style=\"font-family: verdana, geneva, sans-serif;\">Evolution of IIS<\/span><\/h2>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">IIS 1.0 was developed for Windows NT 3.51 back in the day, and saw a number of iterations until IIS 6.0 was added to Microsoft\u2019s Windows Server 2003. Windows Server 2008 saw a major redesign of Internet Information Services in the form of <a href=\"https:\/\/technet.microsoft.com\/en-us\/library\/2008.09.iis.aspx\" rel=\"nofollow\" target=\"_blank\">IIS 7.0<img class=\"extlink-icon\" src=\"https:\/\/www.poweradmin.com\/blog\/wp-content\/plugins\/external-links-nofollow-open-in-new-tab-favicon\/images\/extlink.png\"><\/a>. The latest version \u2013 IIS 10 \u2013 was built for Windows Server 2016 and Windows 10.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">IIS 10 works in a container and virtual machine, enabling a wide range of web applications to be catered for, and adds support for the HTTP\/2 protocol. There\u2019s now a self-contained <a href=\"http:\/\/searchwindowsserver.techtarget.com\/definition\/IIS\" rel=\"nofollow\" target=\"_blank\">version of the platform<img class=\"extlink-icon\" src=\"https:\/\/www.poweradmin.com\/blog\/wp-content\/plugins\/external-links-nofollow-open-in-new-tab-favicon\/images\/extlink.png\"><\/a> known as IIS Express, which removes the need for administrative privileges to conduct many of its tasks, and is aimed at enabling developers to more easily test websites.<\/span><\/p>\n<h2><span style=\"font-family: verdana, geneva, sans-serif;\">Basic Performance Indicators<\/span><\/h2>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">A baseline for IIS performance should be maintained, to ensure that a minimal level of functionality (representing \u201cstandard operating conditions\u201d) can be preserved at all times. This will enable the enterprise to meet all its responsibilities in terms of making services available, processing requests, and preserving data integrity.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Indicators to look out for at this level include the following:<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b><a href=\"https:\/\/www.poweradmin.com\/help\/latestsmhelp.aspx?page=monitor_web_page.aspx&amp;ref=blog\">Website Monitoring Using Simple HTTP Testing<\/a>: <\/b>By setting a simple HTTP test to run every minute, you can keep an eye on whether your website is up or down, at any given moment. This check can also enable you to track how long the site takes to respond to requests and interactions.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Making Sure The IIS Application Pool Is Running: <\/b>Set your monitoring tools to verify that the IIS Application Pool has started, and is running as the file w3wp.exe. This will help guard against fatal application errors, bad system configurations, user errors, and other issues.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b><a href=\"https:\/\/www.poweradmin.com\/help\/latestsmhelp.aspx?page=monitor_perfmon_counter.aspx&amp;ref=blog\">Overall Server &amp; CPU Usage<\/a>: <\/b>This is a baseline indicator for any system, really. For Internet Information Services, you should monitor the CPU and server usage of the IIS Worker Process, in particular.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Memory Usage &amp; Allocations<\/b>: Again, a basic consideration for any software platform. The currently used and available memory for the IIS Worker Process is the thing to watch, here.<\/span><\/p>\n<h2><span style=\"font-family: verdana, geneva, sans-serif;\">Monitoring IIS Generally<\/span><\/h2>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">Your monitoring system should be configured to <a href=\"https:\/\/www.poweradmin.com\/help\/latestsmhelp.aspx?page=monitor_perfmon_counter.aspx&amp;ref=blog\">observe these Windows Performance Counters<\/a>, for Internet Information Services:<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Bytes Received\/Second: <\/b>Useful in tracing and identifying potential spikes in data traffic, for your Web Service.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Bytes Sent\/Second: <\/b>A Web Service indicator for tracking and identifying potential spikes in network traffic.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Current Connections On The Web Service: <\/b>Your observations and experience over time will establish safe, peak, and unacceptable levels for this parameter.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Requests\/Second For ASP.NET Applications: <\/b>Static files and certain other requests are exclusively processed by IIS. Other requests should be monitored to observe which ones are handled by IIS, and which by ASP.NET \u2013 and the rate at which they\u2019re coming in.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Requests In The ASP.NET Application Queue: <\/b>Too many of these may hamper your server\u2019s ability to handle incoming requests, so establish a safe maximum and stick to it.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Time Spent Clearing The Garbage Collection Memory (.NET CLR Memory \u2013 % Time in GC): <\/b>Poor handling of object allocations may result in too much time (more than 5% is considered excessive) being spent by an app on garbage collection.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Tracking All .NET Exceptions: <\/b>Having a very high rate of exceptions can cause performance issues which are difficult to observe or trace. The \u201c.NET CLR Exceptions \u2013 # of Exceps Thrown\u201d counter enables you to keep track of all .NET exceptions \u2013 even if they\u2019ve been handled and discarded.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Checking The Number Of Unhandled Exceptions: <\/b>Monitoring the \u201cErrors Unhandled During Execution\/sec\u201d counter will keep track of unhandled exceptions which may have impacted system performance or directly affected your users.<\/span><\/p>\n<p>\u00a0<\/p>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">\u00b7 <b>Errors Total\/Second For ASP.NET Applications: <\/b>Establishing the number of errors during compilations, pre-processing and execution may reveal certain types of errors which other exception counters aren\u2019t able to detect.<\/span><\/p>\n<h2><span style=\"font-family: verdana, geneva, sans-serif;\">Some Best Practices<\/span><\/h2>\n<p><span style=\"font-family: verdana, geneva, sans-serif;\">If your system monitoring tools allow for the automation of processes, it\u2019s a good idea to use this feature to automatically monitor all baseline processes, and to automatically detect all ASP.NET applications.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Internet Information Services (IIS, which was formerly known as Internet Information Server) is a flexible, general-purpose web server originally created by Microsoft for its Windows NT family of network operating systems. IIS supports a number of web protocols, including HTTP, HTTPS, FTP, FTPS, SMTP and NNTP. \u00a0 IIS is used on Windows systems to provide [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":5217,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,9,8],"tags":[],"class_list":["post-5215","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to","category-technical","category-windows"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/posts\/5215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/comments?post=5215"}],"version-history":[{"count":3,"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/posts\/5215\/revisions"}],"predecessor-version":[{"id":5219,"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/posts\/5215\/revisions\/5219"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/media\/5217"}],"wp:attachment":[{"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/media?parent=5215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/categories?post=5215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.poweradmin.com\/blog\/wp-json\/wp\/v2\/tags?post=5215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}