Ithicos Solutions Recommendations, Best Practices, Improving Performance Scalability, and Monitoring

Ithicos Solutions applications including Directory Update, Directory Manager, Directory Search, and Directory Password are straight forward Web 2.0 applications using client-side JavaScripts and leverage the Microsoft .NET Framework running on Windows Server Internet Information (IIS). All that is necessary on the client (end user) computer is a Web browser that supports JavaScript (though we only test the more recent versions of Internet Explorer, Firefox, and Google Chrome. Maintaining our applications is reasonably straight forward.


Best Practices

Some simple practices will help you ensure that Ithicos Solutions applications work at peak efficiency and enable you to manage them simply and effectively.

  • Get a good text editor like NotePad++ to make changes to your configuration files.
  • Make backups of your XML files before making any changes.
  • Create a dedicated IIS application pool for Ithicos applications
  • Keep your software maintenance up-to-date so that you can upgrade to newer versions at no charge.
  • Do not widely deploy beta versions of browsers or new browser releases until you have tested all of your Web applications.
  • Ensure that your service/proxy account has sufficient Active Directory permissions and that the password does not expire.
  • Periodically (possibly once per week) backup the entire application folder, such as c:\inetpub\wwwroot\directoryupdate.

Improving Performance

Often, customers report to us that our applications are "slow to load" the first time the application is used each day. This is an inherent characteristic of ASP.NET applications. .NET applications are compiled at run-time and then held in the IIS server's cache for some period of time to be available for other users. The same behaviour can be seen in other ASP.NET applications like Exchange Outlook Web App and SharePoint. They are slow to load the first time they are used after some period of inactivity on the web server for that particular application.

Ithicos Solutions web-based applications use the .NET Framework v4.x platform as well as other underlying components of the Windows Server operating system and Internet Information Server. Each application has its own IIS Application Pool (AppPool). An AppPool is essentially a memory space and set of CPU threads that are assigned to a web application. This allows applications to run independently of one another on the same IIS server and prevents one web application from negatively affecting another. There are a few key things you can do to an AppPool to improve performance by increasing timeout values and increasing the amount of time that the application remains un-used in the IIS cache.

  1. Logon to the console of the IIS server
  2. Open the Internet Information Server (IIS) Manager program
  3. Navigate to the Application Pools folder
  4. Locate the AppPool that you want to edit, such as DirectoryUpdateAppPool
  5. File system permissions for Ithicos applications
  6. Right click on the AppPool and choose Advanced Settings
  7. Update any of the settings that you may want to tune
  8. Save the settings
  9. Run IISRESET.EXE

Here are a few important settings that you should be aware of:

  • .NET CLR Version - Must be v4.0
  • Enable 32-Bit Applications - Must be False
  • Start Mode - Set to OnDemand for better performance
  • Identity - Unless told otherwise by support - must be NetworkService
  • Idle Time-Out (minutes) - May increase to 600

Usage Auditing

Directory Update, Directory Manager, and Directory Password all include auditing options including auditing changes to a text file or logging the last changed date/time to an attribute in Active Directory.


Monitoring

Unfortunately, there is not a single performance monitor counter that allows you to monitor any of the Ithicos Applications. In general, if a Web application is having performance issues the first thing to check is to ensure that the Windows server has sufficient memory. Windows 2008 R2 usually needs a minimum of 4GB to run web applications. The other performance factor that you can monitor is to watch the CPU usage of the W3WP.EXE processes. If you have followed our guide for creating a dedicated application pool for Ithicos applications then this process will be running as "NETWORK SERVICE".


Scalability

In most cases, a single IIS server can accommodate hundreds of simultaneous Web application users. Ithicos applications can co-exist with other Web application as well. Each application has a different behaviour on an IIS server. When sizing an IIS server to support Ithicos applications, we recommend at a minimum:

  • Dual-core CPU with 4GB of RAM and 10GB of additional disk space above what the operating system requires
  • Physical or virtual server
  • Use a dedicated IIS application pool for Ithicos appliations. A single application pool for all Ithicos applications is usually sufficient.
  • The IIS server should be on the same network segment as the domain controller/global catalog server that the Ithicos applications are configured to use.
  1. Directory Update and Directory Password

    In most cases, Directory Update is only used by end users once every few months or upon request. So a single installation of Directory Update can potentially support 75,000+. We recommend no more than 250 simultaneous users, but that is usually not a problem since a user connects to the Directory Update page, updates their information, and then disconnects. However, if you send an email notice out to all 100,000 users asking them to update their information at 9AM on Monday morning, you may over-task your server. In that case, multiple servers can be installed and load balanced or you can stagger notifications to only a few thousand users at a time.

  2. Directory Search

    Directory Search, when used as an address book service, usually has the highest simultaneous use in most environments. We recommend no more than 750 simultaneous connections at any given time. Keeping the maximum query size (defaults to 100) small helps improve performance. The larger the query side, the slower each user's performance will be.

  3. Directory Manager

    Directory Manager is typically used by a very small number of authorized users and thus scalability and simultaneous users is not a concern.

Last Review: 17 Dec 2016