MSCOM OPS March Debug Madness…1st Webcast Session Q&A
Thanks to everyone that attended today’s first webcast of the week entitled “Determining When You Have A Problem & Beginning the Initial Debugging” and presented by Jeffrey Johnson, a Sr. Systems Engineer on the MSCOM OPS Debugging Team.
Don't forget to keep checking this blog as we will be posting the on-demand link for today's webcast as soon as we get it.
Please join us for the rest of MSCOM OPS Webcast Week. Here is the line up and sign up links once again:
Tuesday 3/28/2006 9:30am- 11:00am (PST): Debugging CLR Internals (Level 300)
Presenter: Jeff Stucky
Wednesday 3/29/2006 8:00am - 9:30am (PST): Diagnosing Memory Leaks in ASP.NET Applications (Level 300)
Presenter: Jim Dobbin
Thursday 3/30/2006 9:30am -11:00pm (PST): How to Tackle Problems in Dynamically Generated Assemblies (Level 300)
Presenter: Khalil Nassar
Friday 3/31/2006 8:00am- 9:30am (PST): Debugging Without the Debugger in IIS and ASP.NET (Level 300)
Presenter: Chris St.Amand
As promised here are the questions that you asked and the answers to those questions from today’s webcast. The scripts/commands should follow in a day or two.
1. Asked: Does LogParser come with Windows or adminpak etc.? Does Log Parser comes with the OS?
Answered: Logparser comes with the IIS 6 resource kit tools or is downloadable from www.microsoft.com. Specifically https://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en
2. Asked: Can we use LogParser to connect to a different computer?
Answered: Yes, Log Parser is remoteable. You can connect to a remote servers event log by specifying \\servername\System as the source in the from portion of the query.
3. Asked: If aspnet_wp is showing a large amount of memory in task manager - Is there a way to find out how much each .NET application is taking?
Answered: I dont think you can get that info from something like perfmon, no memory counters for specific applications, but you could investigate this via a debugger. Upcoming sessions this week will cover memory issues.
4. Asked: Why is the default recycle time in iis set to 29 hours? Where did that number come from?
Answered: This was a "random" # that was not = to 24 hours which presents the opportunity for app pools to always recycle at the exact same time if you use iisreset. Though 29 hours doesn't fully fix this issue, it *helps* slightly. However, the decision was completely arbitrary as Microsoft wanted > 24 hours but < 48. If you are using ASP.NET, then it is recommended that you disable this as this is a bad practice on any application that is cache intensive.
5. Asked: Can you write the location of !sos
Answered: c:\windows\microsoft.net\framework\<version> or if you're using 64-bit
6. Asked: is there a way to look at cached items on a web server if you have a mix of asp ad asp.net 1.1 applications in production?
Answered: c:\windows\microsoft.net\framework64\<version>
7. Asked: Would you please type the url for the logparser webcasts
Answered: Data Mining with Log Parser 2.x: https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032263723\&EventCategory=3\&culture=en-US\&CountryCode=US and Tip's and Trick's: https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032263670\&EventCategory=3\&culture=en-US\&CountryCode=US
8. Asked: How do you track down the source of a situation where non-paged pool grows over time and eventually locks up the system for a system that runs the same set of applications all the time and all the applications came from Microsoft?
Answered: you can use poolmon.exe - a resource kit application or the kernel debugger. For xp, 2003 and greater you can do a self kernel debug and use the !poolused command - to find the abusing pool tag(s). Once you have the tag you can narrow your focus to the piece of code that uses those pooltags.
9. Asked: is there a way to look at cached items on a web server if you have a mix of asp ad asp.net 1.1 applications in production?
Answered: managed cache is treated separately than unmanaged cache, !sos can show you managed cache items, but you would need more information about the unmanaged cache in order to get at it. Depends on how it was implemented.
10. Asked: If there are multiple .Net apps running on the server, they all have the same process name (aspnet_wp)...how do you know which one belongs to which app?
Answered: In IIS6 you can move apps to their own App Pool or process, which is useful for troubleshooting by isolatiing an app. In IIS5 with ASPNET_WP, I would think you would have to investigate it with a debugger.
11. Asked: Is it possible to recycle an application domain from the command line?
Answered: I dont know of any way to do that. You can recycle an Application pool but that is the whole process and all app domains in that process.
12. Asked: Do all .net exceptions that are not caught by the application will bubble up and get logged in Event viewer?
Answered: No. An example is ThreadAbort exceptions. However, generally most exceptions that result in a page not being served are logged.
13. Asked: Is there some webcasts about using the sos stuff?
Answered: Not sure about a webcast just for sos, but we are planning on posting all our debugger logs for the week to our blog site (referenced at the end of the presentation)
14. Asked: What is the formula for unit of work?
Answered Privately: A unit of work is a little bit subjective, generally it's considered to be all the processing required for an end to end transaction, including middle tier and database processing. Not sure if that answers your question.
15. Asked: Can you categorize the event logs by application by some setting in web.config..or would you have to write a separate application to categorize events by application
Answered: I don't believe there is, you could possibly do something like this yourself in an http handler
16. Asked: Any examples how kernrate output looks like?
Answered Privately: It's pretty large to post here, I'll be showing some kernrate output in my webcast tomorrow. The interesting stuff is basically how many cycles a particular function run, but it does not give you the actual call stack that resulted in the function call.
17. Asked: I believe response.redirect does support calling without throwing ThreadAbort exception?
Answered: Yes it does, by passing a second parameter set to false
18. Asked: What is recommended in place of response.redirect? server.transfer?
Answered: Response.Redirect is fine to use, just pass the 2nd param as FALSE to avoid the thread abort exception - remember your code will continue to run after this redirect though.
19. Asked: If possible, can we get a detail of the list of commands you call during the debugging/sos posted on your blog site?
Answered: We will be posting these commands on on our blog site after this webcast. https://blogs.technet.com/mscom
20. Asked: What is the url that the Scripts will be available?
Answered: W will provide a link on our blog site https://blogs.technet.com/mscom
21. Asked: In a SBS2003 single server environment where you really have no other servers to compare anything to, how do you know if your current average % disk busy is reasonable? For example I get a SBS status report each day and it reports around 30% disk busy time and 4% cpu utilization on a dual Processor 4G of Ram system.
Answered Privately: You might consider running Server Performance Advisor (off download center) against the machine and see what the report it generates says. Basically just monitor if the disk utilization is affecting the disk performance (disk seconds/read or write). You could also run Sysinternals Filemon in order to determine who it is that's generating all the disk activity, but SPA will show you some of that as well.
22. Asked: is there anything to worry about with logparser and memory usage? can I run log parser on a production site.
Answered: Log Parser will use memory. The memory usage is higher if you use group by and order by in your query, since in these cases Log Parser has to reference all output at once in memory. Which means that your memory usage is closely related to the size of your output. If you don’t group by and order by then Log Parser will only keep the current row in memory (which is fairly light from the memory perspective).
23. Asked: When using the logparser with iis log files, is there a function that will convert utc to local time in the select statement?
Answered: No problem - I was hoping you would ask: to_localtime(to_timestamp(date,time)) as LocalTime