{"id":2135,"date":"2019-01-04T13:53:55","date_gmt":"2019-01-04T18:53:55","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/jonathan\/?p=2135"},"modified":"2019-01-04T13:53:55","modified_gmt":"2019-01-04T18:53:55","slug":"cpu-ready-impact-on-sos_scheduler_yield","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/","title":{"rendered":"CPU Ready Impact on SOS_SCHEDULER_YIELD"},"content":{"rendered":"<p>At the end of May 2017, Paul and I had a discussion about <a href=\"https:\/\/www.sqlskills.com\/help\/waits\/sos_scheduler_yield\/\" target=\"_blank\" rel=\"noopener noreferrer\">SOS_SCHEDULER_YIELD <\/a>waits and whether or not they could become skewed in SQL Server as a result of hypervisor scheduling issues for a VM running SQL Server.\u00a0 I did some initial testing of this in my VM lab using both Hyper-V and VMware and was able to create the exact scenario that Paul was asking about, <a href=\"https:\/\/www.sqlskills.com\/blogs\/paul\/increased-sos_scheduler_yield-waits-on-virtual-machines\/\" target=\"_blank\" rel=\"noopener noreferrer\">which he explains in this blog post<\/a>.\u00a0 I\u2019ve recently been working on reproducing another VM scheduling based issue that shows up in SQL Server, where again the behaviors being observed are misleading as a result of the hypervisor being oversubscribed, only this time it was not for the SQL Server VM, it was instead for the application servers, and while I was building a repro of that in my lab, I decided to take some time and rerun the SOS_SCHEDULER_YIELD tests and write a blog post to show the findings in detail.<\/p>\n<p>The test environment that I used for this is a portable lab I\u2019ve used for demos for VM content over the last eight years teaching our Immersion Events. The ESX host has 4 cores and 8GB RAM and hosts three virtual machines, a 4vCPU SQL Server with 4GB RAM, and two 2vCPU Windows Server VM\u2019s with 2GB RAM that are used strictly to run Geekbench to produce load.\u00a0 Within SQL Server, I a reproducible workload that drives parallelism and is repeatable consistently, that I have also used for years in teaching classes.<\/p>\n<p>For the tests, I first ran a baseline where the SQL Server VM is the only machine executing any tasks\/workload at all, but the other VMs are powered on and just sitting there on the hose.\u00a0 This establishes a base metric in the host and had 1% RDY time average during the workload execution, after which I collected the wait stats for SOS_SCHEDULER_YIELD.<\/p>\n<p><a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image002.jpg\"><img fetchpriority=\"high\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"clip_image002\" src=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image002_thumb.jpg\" alt=\"clip_image002\" width=\"644\" height=\"412\" border=\"0\" \/><\/a><\/p>\n<p>Then I reran the tests but ran four copies of GeekBench on one of the application VM\u2019s to drive the CPU usage for that VM and keep it having to be scheduled by the hypervisor, and then reran the SQL Server workload.\u00a0 This put the SQL Server VM at 5% RDY time in the hypervisor during the tests, which is my low watermark for where you would expect performance issues to start showing.\u00a0 When the SQL workload completed, I recorded the waits again.<\/p>\n<p><a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image004.jpg\"><img decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"clip_image004\" src=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image004_thumb.jpg\" alt=\"clip_image004\" width=\"644\" height=\"412\" border=\"0\" \/><\/a><\/p>\n<p>Then I repeated the test again, but with both of the application VM\u2019s running four copies of Geekbench.\u00a0 The SQL Server VM had an average of 28% RDY time, and when the workload completed the waits were recorded a final time.<\/p>\n<p><a href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image006.jpg\"><img decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;\" title=\"clip_image006\" src=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image006_thumb.jpg\" alt=\"clip_image006\" width=\"644\" height=\"412\" border=\"0\" \/><\/a><\/p>\n<p>As you can see below there is a direct increase in the wait occurrence with the increase in RDY%.<\/p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"5\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"72\">Test<\/td>\n<td valign=\"top\" width=\"72\">AVG RDY%<\/td>\n<td valign=\"top\" width=\"156\">wait_type<\/td>\n<td valign=\"top\" width=\"137\">waiting_tasks_count<\/td>\n<td valign=\"top\" width=\"100\">wait_time_ms<\/td>\n<td valign=\"top\" width=\"132\">max_wait_time_ms<\/td>\n<td valign=\"top\" width=\"141\">signal_wait_time_ms<\/td>\n<td valign=\"top\" width=\"67\">Duration<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"72\">2 APP VM<\/td>\n<td valign=\"top\" width=\"72\">28.4<\/td>\n<td valign=\"top\" width=\"156\">SOS_SCHEDULER_YIELD<\/td>\n<td valign=\"top\" width=\"137\">10455<\/td>\n<td valign=\"top\" width=\"100\">22893<\/td>\n<td valign=\"top\" width=\"132\">124<\/td>\n<td valign=\"top\" width=\"141\">22803<\/td>\n<td valign=\"top\" width=\"67\">3:59<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"72\">1 APP VM<\/td>\n<td valign=\"top\" width=\"72\">5.1<\/td>\n<td valign=\"top\" width=\"156\">SOS_SCHEDULER_YIELD<\/td>\n<td valign=\"top\" width=\"137\">2514<\/td>\n<td valign=\"top\" width=\"100\">3618<\/td>\n<td valign=\"top\" width=\"132\">62<\/td>\n<td valign=\"top\" width=\"141\">3608<\/td>\n<td valign=\"top\" width=\"67\">1:57<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"72\">Baseline<\/td>\n<td valign=\"top\" width=\"72\">1.2<\/td>\n<td valign=\"top\" width=\"156\">SOS_SCHEDULER_YIELD<\/td>\n<td valign=\"top\" width=\"137\">1392<\/td>\n<td valign=\"top\" width=\"100\">974<\/td>\n<td valign=\"top\" width=\"132\">12<\/td>\n<td valign=\"top\" width=\"141\">963<\/td>\n<td valign=\"top\" width=\"67\">1:32<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>High CPU Ready time is something that should be consistently monitored for with SQL Server VM\u2019s where low latency response times are required.\u00a0 It also should be monitored for application VMs where latency is important as well.\u00a0 One thing to be aware of with any of the wait types on a virtualized SQL Server, not just the SOS_SCHEDULER_YIELD wait, is that the time spent waiting is going to also include time the VM has to wait to be scheduled by the hypervisor as well.\u00a0 The SOS_SCHEDULER_YIELD wait type is unique in that the number of occurrences of the wait type increases because of the time shifts that happen causing quantum expiration internally for a thread inside of SQLOS forcing it to yield, even if it actually didn\u2019t get to make progress due to the hypervisor not scheduling the VM.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At the end of May 2017, Paul and I had a discussion about SOS_SCHEDULER_YIELD waits and whether or not they could become skewed in SQL Server as a result of hypervisor scheduling issues for a VM running SQL Server.\u00a0 I did some initial testing of this in my VM lab using both Hyper-V and VMware [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[27,48,43],"tags":[],"class_list":["post-2135","post","type-post","status-publish","format-standard","hentry","category-internals","category-sql-server","category-virtualization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CPU Ready Impact on SOS_SCHEDULER_YIELD<\/title>\n<meta name=\"description\" content=\"This post demonstrates the negative impact of CPU Ready waits for VMs on SOS_SCHEDULER_YIELD waits inside of SQL Server.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CPU Ready Impact on SOS_SCHEDULER_YIELD\" \/>\n<meta property=\"og:description\" content=\"This post demonstrates the negative impact of CPU Ready waits for VMs on SOS_SCHEDULER_YIELD waits inside of SQL Server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/\" \/>\n<meta property=\"og:site_name\" content=\"Jonathan Kehayias\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-04T18:53:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image002_thumb.jpg\" \/>\n<meta name=\"author\" content=\"Jonathan Kehayias\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jonathan Kehayias\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/\"},\"author\":{\"name\":\"Jonathan Kehayias\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"headline\":\"CPU Ready Impact on SOS_SCHEDULER_YIELD\",\"datePublished\":\"2019-01-04T18:53:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/\"},\"wordCount\":651,\"commentCount\":7,\"image\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/clip_image002_thumb.jpg\",\"articleSection\":[\"Internals\",\"SQL Server\",\"Virtualization\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/\",\"name\":\"CPU Ready Impact on SOS_SCHEDULER_YIELD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/clip_image002_thumb.jpg\",\"datePublished\":\"2019-01-04T18:53:55+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\"},\"description\":\"This post demonstrates the negative impact of CPU Ready waits for VMs on SOS_SCHEDULER_YIELD waits inside of SQL Server.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/clip_image002_thumb.jpg\",\"contentUrl\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/wp-content\\\/uploads\\\/2019\\\/01\\\/clip_image002_thumb.jpg\",\"width\":644,\"height\":412},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/cpu-ready-impact-on-sos_scheduler_yield\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Internals\",\"item\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/category\\\/internals\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"CPU Ready Impact on SOS_SCHEDULER_YIELD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#website\",\"url\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/\",\"name\":\"Jonathan Kehayias - The Rambling DBA\",\"description\":\"The Rambling DBA\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.sqlskills.com\\\/blogs\\\/jonathan\\\/#\\\/schema\\\/person\\\/01c10d94f3648654ef706d5e6305f69c\",\"name\":\"Jonathan Kehayias\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g\",\"caption\":\"Jonathan Kehayias\"},\"sameAs\":[\"http:\\\/\\\/3.209.169.194\\\/blogs\\\/jonathan\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CPU Ready Impact on SOS_SCHEDULER_YIELD","description":"This post demonstrates the negative impact of CPU Ready waits for VMs on SOS_SCHEDULER_YIELD waits inside of SQL Server.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/","og_locale":"en_US","og_type":"article","og_title":"CPU Ready Impact on SOS_SCHEDULER_YIELD","og_description":"This post demonstrates the negative impact of CPU Ready waits for VMs on SOS_SCHEDULER_YIELD waits inside of SQL Server.","og_url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/","og_site_name":"Jonathan Kehayias","article_published_time":"2019-01-04T18:53:55+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image002_thumb.jpg","type":"","width":"","height":""}],"author":"Jonathan Kehayias","twitter_misc":{"Written by":"Jonathan Kehayias","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/#article","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/"},"author":{"name":"Jonathan Kehayias","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"headline":"CPU Ready Impact on SOS_SCHEDULER_YIELD","datePublished":"2019-01-04T18:53:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/"},"wordCount":651,"commentCount":7,"image":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image002_thumb.jpg","articleSection":["Internals","SQL Server","Virtualization"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/","name":"CPU Ready Impact on SOS_SCHEDULER_YIELD","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/#primaryimage"},"image":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image002_thumb.jpg","datePublished":"2019-01-04T18:53:55+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c"},"description":"This post demonstrates the negative impact of CPU Ready waits for VMs on SOS_SCHEDULER_YIELD waits inside of SQL Server.","breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/#primaryimage","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image002_thumb.jpg","contentUrl":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-content\/uploads\/2019\/01\/clip_image002_thumb.jpg","width":644,"height":412},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/cpu-ready-impact-on-sos_scheduler_yield\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/"},{"@type":"ListItem","position":2,"name":"Internals","item":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/category\/internals\/"},{"@type":"ListItem","position":3,"name":"CPU Ready Impact on SOS_SCHEDULER_YIELD"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/","name":"Jonathan Kehayias - The Rambling DBA","description":"The Rambling DBA","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/#\/schema\/person\/01c10d94f3648654ef706d5e6305f69c","name":"Jonathan Kehayias","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86630e27f5deecc5c393ea57fc7c3b6a068949f4fd6b5309f81de5a276f12855?s=96&d=mm&r=g","caption":"Jonathan Kehayias"},"sameAs":["http:\/\/3.209.169.194\/blogs\/jonathan"]}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/2135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/comments?post=2135"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/posts\/2135\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/media?parent=2135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/categories?post=2135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/jonathan\/wp-json\/wp\/v2\/tags?post=2135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}