SMT 00.5.40 Released!
by Michal Tinthofer on 21/12/2017In this Christmas time we have some presents for you in form of new release. New reports and tuning notepad awaits you!.
Read moreGreetings from Woodler,
Today, we have prepared another release of SMT 1.11.0 for you. It is rather significant, and it should be since we haven’t had a big one since last summer. So take your time, sit down, and let’s go through the news in SMT.
There are several important changes which hopefully you will enjoy. We tried to focus on specific aspects and go deep as much as possible [which is by the way an SMT signature approach] to provide detailed and valuable data.
Session Thread Wait Statistics has always been my wish to have in SMT, and finally, we have. And to be honest, in the most advanced way I have ever seen in monitoring tools. I am not talking only about reporting, but also collection. From what I saw in other tools, there could be several fundamental flaws in collecting such a volatile statistic. So, we took more time to do it right. No cumulative statistics from the session start were collected for the currently running query, and no collection for only current wait statistics of the running session. We correctly identify one of the six possible situations where the query could be and, based on the situation, perform the correct collection operation.
As a result, you will see more detailed wait statistics for sessions than ever before, and I am looking forward to your feedback!
Advanced collection has rules, and you can influence them with new check parameters for the Session Waits check in SMT. Go ahead and learn how to use them.
For reporting, you have a completely new report in the Waits group called The Session Waits. It allows you to see data in table fashion with cumulative values and an aggregated timeline column graph (as you know from Waits Summary, for example).
This report supports aggregation on:
NOTE: All those attributes allow you to filter, so now you could answer a very specific questions like how much waits over time was generated by this database on my server. Or, which query from this workload group generated most CXpackets. The options are wide.
Waits in Current Activity are another place where we see added value. If you need to watch the current server activity for specific sessions, now you will have on top of standard session performance metrics also session wait statistics in over time and cumulative manner. And that’s not all, we have developed several workarounds for sys.dm_exec_plan_attributes bugs and this allows us to make the “current index processing” table more reliable in terms of estimated statistics. Plus, we make available the current estimated plan of running session for download, so you may quickly check the plan in Plan Explorer if needed.
To reflect all those changes, we renamed the Index Processing tab, which is now the Index Processing & Thread Waits Information tab.
Performance monitor counters have been for a long time a little pain to manage. As we added more and more counters, especially with collection per every database, the perfmon table started to grow more than we wanted. So, in this release, we have come up with some fine-tuning:
To allow this tuning to happen on your servers we dropped (if applicable) your custom settings for perfmon collection and retentions and aligned them back to the BASE config. You may still change them if you wish to have more granularity of data at the expense of storage requirements.
Another major update has been made in the Queries > Execution Plan report. Here, we expanded the information available in several tables. There are so many of them that it will be better for you to look at this report. Table and graph descriptions have also been updated to provide you with more insight.
But in general:
To give you even more control over observer overheat of SMT, we have come with new and redesigned reports to provide insight into which checks are most costly and how SMT collection is performing.
SMT Settings > Collector Status have redesigned tabs and added filter on check name for the Last 100 checks log table.
SMT Settings > Runtime Stats now provides very detailed performance and error metrics in last day or last month fashion. On top of that, we have also added a second tab to show check performance over time for the last 12 hours. Here, you may find how often and for how long our checks are running on the SQL Servers, together with check errors over the last 12 hours.
We believe in transparency. It would be a shame not to provide the best performance metric for complicated monitoring tools such as SMT, so we also keep our standards here.
Smaller features that could be useful for you:
The Queries > Execution Plan > Plan Statistics tab got a Stale Lag [min] column to quickly identify obsolete statistics during plan compilation.
The Workload KPI tab has been extended and moved as a stand-alone report into Queries > Workload KPI. We believe it will help with its accessibility since it could provide an interesting baseline as to how your complete workload is doing over time and show you any anomalies which could arise.
Queries> Query Summary tab received a new column called Significance in the table. The purpose of it is to give you one complete metric on which you may evaluate the queries across more than one chosen attribute (e.g., CPU, Log. Reads, Phy. Reads, etc.…). It uses an algorithm to weight between various metrics and produces a single value, usable in comparison with other queries. This algorithm currently uses the highest emphasis on the CPU, followed by physical reads, logical reads, and writes. By scaling down read and write metrics, the score provides a balanced view of resource utilization, enabling precise identification of queries that significantly impact server performance. This algorithm can be changed by editing a check parameter called Q_SIGNIFICANCE.
Added logging for SMT configuration level events (Checks, Parameters), so now you may visit the Administration > Logs > Events report to see who changed which SMT configuration setting.
To reflect recent changes from SMT 1.10.1 in query collection, we added an Object Name column to the Queries > Hash List report, so you may differentiate from which object your query has been called. Also, we have replaced batch text with Object Name in Queries > Query Detail. In case your query is not called from the module, the reporting remains the same as before, and you will see a complete batch.
Added limitation for check retention to 48 hours as the minimum allowed due to DWH requirements.
We updated the CPU & Tasks > Overview report to show process ID instead of #number at the end of the process name. This will help you to keep track of specific processes in case of more instances of the same process running on the OS. Also, we added a Kernel Time Graph and a little bit of sorted Average CPU Process Consumption graph to show the SQL Server process as a first (green) chart. This chart is now a stacked chart for better visibility of total CPU consumption. SQL Server Process showing variation in CPU usage by SQL Server received its own graph, instead of the previously shared one with Average CPU Process Consumption.
The Tempdb > Version Store report now provides a graph with average and maximum Tempdb Version Store Usage by Database. This will give you a clean view which database is participating on version store size mostly.
Queries > A/B Testing received a new front end message when cmd_shell is turned off, so some data will be missing. We have removed the Server Statistics tab and replaced it with Thread Waits and Server Throughput tabs. Those contains graphs previously located in removed tab.
Memory > Internal Memory has new graphs with important metrics like Memory Grants, Checkpoints, and Free list metrics. Some are interesting for memory troubleshooting. For example, the usage of Indirect Checkpoints can be identified in those new graphs. Special attention has been given to Free List Statistics, which will now show you by color how hot your free list is, what type of workload is running on the server from the memory perspective, and how many requests are blocked from execution due to unavailability of free memory pages. Very interesting stuff, in my opinion.
Simplification of the Query Summary reporting procedure allows for better performance and a dynamic significance column algorithm.
Performance tuning for the Memory > Internal Memory reporting (10x improvement in graph load).
Queries > Execution Plan > Plan Detail Waits has Error handling in case you don’t have Query Store enabled.
Fix for Indexes > High Fragmentations not showing data in the timeline due to filter input issue.
Fix for Queries > A/B Testing not showing any values in the Database filter. Reorganized Server Statistics into the Thread Waits tab and Server Throughput. There are minor visual fixes there.
Updated Current Activity > Ex. Plan Processing to show all plan operators. Also fixed another bug when the current operator was not showing. Added Message into output table instead of reporting error if the session is not running. Also, fixed current index processing is not showing time estimates properly.
Fixed bug Current Activity > All Thread Waits For The Session waits showing data in ms. instead of sec.
Small fix for SMT settings > Collector Status, which has the wrong ordering of STAMP data.
Fixed Deadlocks/Blocks sparklines on the Dashboard not showing values.
Performance tuning for Always On > Current Status.
Waits > Waiting Tasks fix for duplicate Queries and Plans.
If you are reading these lines I want to especially thank you for your time reading those release notes. It is important to understand why and how things in SMT have evolved. We, at Woodler, hope this release will give you as much enjoyment as it has for us and in case of any issues feel free to use the “Organize meeting with Woodler” button in the top right corner of SMT. Until next time, happy tuning!
Regards,
Michal
Michal Tinthofer is the face of the Woodler company which (as he does), is fully committed to complete support of Microsoft SQL Server products to its customers. He often acts as a database architect, performance tuner, administrator, SQL Server monitoring developer (Woodler SMT) and, last but not least, a trainer of people who are developing their skills in this area. His current "Quest" is to help admins and developers to quickly and accurately identify issues related to their work and SQL Server runtime.
In this Christmas time we have some presents for you in form of new release. New reports and tuning notepad awaits you!.
Read moreI would like to say thank you for attending my presentations on this year ShowIT.
Read moreNew version of SMT is now available, you can have a look on the summary of changes.
Read more