Thursday, September 19, 2013

Troubleshooting Terminal Server Performance Issues

On the Terminal Server

General
Look for processes with high CPU
Look for processes with high disk I/O
Disable “real time” virus scan
Uninstall virus scan software completely and reboot the server
Verify JP2SSV.DLL and SSV.DLL are “disabled” (Everyone: Deny NTFS permission)
Check for excessive queries to the registry (user Process Monitor)
Check for “startup” or “logon” processes (HKLM\...\Run and RunOnce keys)
Check for excessive / unnecessary processes running for all users (like besclientui.exe)

Memory
Available memory
Paged pool
Non-paged pool
Free system Page Table Entries (PTEs)
Registry size (Can cause “out of memory” errors)

Disk
Processes with high disk IO (read bytes and write bytes in Task Manager)
Disk queue length

Network
Outbound queue length
Using HP Network statistics, check interfaces for errors and retransmits
Fail over to backup/primary NIC: Verify behavior exists on both NICs
Dissolve and re-create NIC teams

Slow Logon
Disable mapping drives back to the TS Client
Determine if user’s home drive is mapping to a file server that is not on the same local network as the Terminal Server
Implement HOMEDRIVE\HOMEPATH redirection to C:\TSHOME


Physical Network (Data Center)
Switch NIC between primary and secondary team members and perform a test. Tests two separate data paths to identify issues with either of the networking cores

Switch port
- Duplex setting
- Errors
- Dropped packets

Switch health:
- CPU utilization
- Available memory
- Utilization (not flooded)
- Dropped packets
- Errors

Router health:
- CPU utilization
- Available memory
- Utilization (not flooded)
- Dropped packets
- Errors

Internet-facing firewalls to DMZ
- CPU utilization
- Available memory
- Utilization (not flooded)
- Dropped packets
- Errors

DMZ to internal network firewalls:
- CPU utilization
- Available memory
- Utilization (not flooded)
- Dropped packets
- Errors

F5:
- CPU utilization
- Available memory
- Utilization (not flooded)
- Dropped packets
- Errors

Perform a tracert; identify any routing loops

Understand if QOS is in use. If it is, understand when it takes affect (in some organizations, it only takes affect if the circuit utilization is over 80%)

PING is not an accurate performance test. PING depends upon ICMP. ICMP packets are typically discarded by QOS



Terminal Server Client
Disable virus scan, specifically any “real time” scanners
Remove virus scan and reboot
Virus scan updates or DAT updates recently? Reboot?
Virus scan software very old / out of date?

Physical Network (Client Site)
HSIA utilization

HSIA dropped packets, errors on interfaces

HSIA router health
CPU
Memory
Circuit utilization
Dropped packets
Errors on interfaces

HSIA firewall health
CPU
Memory
Circuit utilization
Dropped packets
Errors on interfaces

HSIA connection really is a high-speed link, and not a low bandwidth backup link? We had one customer that had failed over to a backup 128K ISDN line and were not aware of it.

Check packet round trip time (Wireshark report)

Check MTU size, look for packet fragmentation (Network Monitor / Wire Shark)

Look for excessive SYN and Reset packets (Network Monitor / Wire Shark)

A note about TSADMIN.EXE and network bandwidth

Using TSADMIN.EXE to view sessions on remote servers will cause spikes in network traffic between the two servers. Keep this in mind when looking at network bandwidth, particularly when viewing the network bandwidth chart in Task Manager.

A note about Task Manager and performance

When running Task manager on a server that has a significant number of users logged on and while viewing processes from all users, Task Manager responds sluggishly. It may appear that the server is having performance issues. This is because Task Manager is having difficulty keeping up with all of the open processes. If you close Task Manager and responsiveness is restored, the issue was caused by Task Manager. Consider running Task Manager with a lower refresh rate.

Enable and start a service via command line

One server
sc config spooler start= auto
sc start spooler

Multiple Servers
List servers in a file named C:\servers.txt

for /f %x in (C:\SERVERS.TXT) do sc %x config spooler start= auto

for /f %x in (C:\SERVERS.TXT) do sc %x start spooler

Disable and stop a service via command line

One server
sc config spooler start= disabled
sc stop spooler

Multiple Servers
List servers in a file named C:\servers.txt

for /f %x in (C:\SERVERS.TXT) do sc %x config spooler start= disabled

for /f %x in (C:\SERVERS.TXT) do sc %x stop spooler

Count disconnected Terminal Server sessions via command line

One Server
query session | find /I “disc” /c

Multiple Servers
List servers in a file named C:\servers.txt

for /f %x in (C:\SERVERS.TXT) do @echo %x&@query session /server:%x | find /i "disc" /c

Count active Terminal Server sessions via command line

One server
query session | find /I “active” /c

Multiple Servers
List servers in a file named C:\servers.txt

for /f %x in (C:\SERVERS.TXT) do @echo %x&@query session /server:%x | find /i "active" /c

Kill a process via command line

One server
taskkill /im besclientui.exe /f

Multiple servers
List servers in a file named C:\servers.txt

for /f %x in (c:\servers.txt) do taskkill /s %x /im besclientui.exe /f

Find a running process via command line

One Server
tasklist /fi "IMAGENAME eq besclientui.exe"

Multiple Servers
List servers in a file named C:\servers.txt

for /f %x in (c:\servers.txt) do tasklist /s %x /fi "IMAGENAME eq besclientui.exe"

Set deny permissions on a file via command line

One server
cacls "c:\Program Files (x86)\BigFix Enterprise\BES Client\BESClientUI.exe" /e /d "EVERYONE"

Multiple servers
List servers in a file named C:\servers.txt

for /f %x in (c:\servers.txt) do cacls c:\Program Files (x86)\BigFix Enterprise\BES Client\BESClientUI.exe" /e /d "EVERYONE"

Wednesday, September 11, 2013

Clear the Outlook auto-complete list

File > Options > Mail > Send messages > press the "Empty Auto-Complete List" button


Applies to
Microsoft Office 2010