{"id":963,"date":"2012-06-07T10:11:00","date_gmt":"2012-06-07T10:11:00","guid":{"rendered":"https:\/\/blogs.technet.microsoft.com\/windowsserver\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/"},"modified":"2024-03-08T10:18:50","modified_gmt":"2024-03-08T18:18:50","slug":"bing-com-runs-on-windows-server-2012","status":"publish","type":"post","link":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/","title":{"rendered":"Bing.com runs on Windows Server 2012!"},"content":{"rendered":"<p><em><strong>Updated 7\/25\/2012:<\/strong><\/em><br \/>\nThe .NET team posted a deep dive into the <a title=\"runtime improvements in the .NET Framework 4.5\" href=\"http:\/\/blogs.msdn.com\/b\/dotnet\/archive\/2012\/07\/20\/the-net-framework-4-5-includes-new-garbage-collector-enhancements-for-client-and-server-apps.aspx\" target=\"_blank\" rel=\"noopener\">runtime improvements in the .NET Framework 4.5<\/a>, specifically in the CLR Garbage Collector. These are the same improvements that we posted on earlier, which the Bing team saw on Windows Server 2012. It is great to see the .NET team making optimizations that enable server apps to run at cloud scale, using Windows Server 2012.<\/p>\n<p><em>Microsoft has been running services on the Internet for quite some time now, but things fundamentally changed a few years ago leading up to Steve Ballmer\u2019s famous quote, &#8220;This is the bet for the company. For the cloud, we&#8217;re all in.&#8221; We have all the oars in the boat pulling in the same direction and learning from each other to deliver the best cloud products. We are taking the lessons from running cloud services and feeding them into our products to make them better. During our planning for Windows Server 2012, we spent a lot of time with our cloud services to understand what worked well and where their pain points were. When you run services at the scale we are running things, every little problem gets amplified and every improvement helps enormously. These learnings are translated into dozens and dozens of features in the areas of performance, automating everything, supporting datacenter topologies, continuous availability, and minimizing mean-time-to-detection (MTTD)\/mean-time-to-recovery (MTTR). In today\u2019s blog, Mukul Sabharwal, a software development engineer on the Bing team, describes a few of the features of Windows Server 2012, their effect on the Bing Service, and why Bing is adopting and deploying Windows Server 2012 as fast as they can. As you\u2019ll see, Windows Server 2012 is truly a cloud-optimized operating system.<\/em><\/p>\n<p>With the recent announcement of the Windows Server 2012 Release Candidate (RC), we at Bing.com considered how we might benefit from some of the operating system\u2019s new features. Bing.com is a cloud service that runs on thousands of computers spanning many datacenters across the globe. Performance is a key component in running a successful cloud service such as Bing. Bing serves thousands of user queries every second, and users demand both relevancy and speed in those results.<\/p>\n<p>Our deployment of Windows Server 2012 leveraged four key new features, in particular:<\/p>\n<ul>\n<li>Built-in Microsoft .NET Framework 4.5, included with Windows Server 2012, including the background garbage collection and associated improved latencies<\/li>\n<li>Improved performance at startup, enabled by the multicore JIT functionality of .NET 4.5<\/li>\n<li>Ability to collect call stacks for 64-bit .NET JITted applications<\/li>\n<li>Evaluation of Hyper-V 3 (the version of Hyper-V in Window Server 2012)<\/li>\n<\/ul>\n<p><span style=\"color: #3366ff;font-size: small\"><strong>Pre-installed .NET Framework 4.5<\/strong><\/span><br \/>\nOur rendering tier runs entirely on managed code, relying on the power of the .NET Framework and the accompanying web frameworks, ASP.NET and ASP.NET MVC. One of the primary reasons for writing managed code is the improved developer productivity and run-time safety afforded by the CLR. These also have performance costs; for example, Garbage Collection (GC).<\/p>\n<p><span style=\"color: #3366ff\"><strong>Server background GC<\/strong><\/span><br \/>\n.NET 4.5 introduces <a title=\"Background GC for Server applications\" href=\"https:\/\/channel9.msdn.com\/posts\/Maoni-Stephens-CLR-45-Server-Background-GC\" target=\"_blank\" rel=\"noopener\">Background GC for Server applications<\/a>. Background GC was released in .NET 4 for client-side applications, and it was a hit, which is why we were really excited when Windows Server 2012 brought it to the server. And of course, we were gleeful when we saw the results!<\/p>\n<p>This graph of InternalRequestLatency shows the time our application spends doing non-I\/O work. (Just so you know, we set goals around making our 99th percentile faster.)<\/p>\n<p><a href=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/1832.Figure201.jpg\"><img decoding=\"async\" src=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/1832.Figure201.jpg\" alt=\" \" border=\"0\" \/><\/a><\/p>\n<p>In the following graph, note that the majority of these gains come from spending less time dealing with the managed memory we create (garbage collecting) as part of servicing a request. (Note that the dates are coordinated with all the graphs in this post.)<\/p>\n<p><a href=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/7167.Figure202.jpg\"><img decoding=\"async\" src=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/7167.Figure202.jpg\" alt=\" \" border=\"0\" \/><\/a><\/p>\n<p>Another measure of optimal performance\u2014and an indicator of server health for ASP.NET applications\u2014is the number of requests that are queued in the ASP.NET pipeline. This is shown in the following graph. Note the sharp decline on 5\/25!<\/p>\n<p><a href=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/7827.Figure203.jpg\"><img decoding=\"async\" src=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/7827.Figure203.jpg\" alt=\" \" border=\"0\" \/><\/a><\/p>\n<p>Upgrading to Windows Server 2012 can have this same positive impact for your managed applications. Less time spent garbage collecting is more time spent serving user requests. The end result is less latency and better throughput for your services.<\/p>\n<p><span style=\"color: #3366ff\"><strong>Multicore JIT<\/strong><\/span><br \/>\nAnother great feature that is available in Windows Server 2012 via .NET 4.5 is JIT-compiling by using multiple cores. The feature is a profile-guided optimization; a background thread compiles methods that are likely to be required by the executing thread, and in an ideal case, the application methods are already JIT compiled when they are needed to run.<\/p>\n<p>This feature is already enabled for ASP.NET applications, which makes it trivial to upgrade\u2014do nothing, and let your ASP.NET applications get multicore JIT automatically.<\/p>\n<p>You may be wondering: Why do startup times matter for server-side applications? The hope is that you restart your services only when needed, and at a time of your choosing so that it can be done during off-peak hours. But what if your application crashes?<\/p>\n<p>The case for startup time is critical for service availability. When a service goes down and can recover quickly, it can be the difference between a total system outage vs. a degraded (but functional) experience.<br \/>\nAnd the startup time improvements, you ask?<\/p>\n<p><a href=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/3644.Figure204.jpg\"><img decoding=\"async\" src=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/3644.Figure204.jpg\" alt=\" \" border=\"0\" \/><\/a><\/p>\n<p>This 50 percent reduction in startup time gives our operational staff relief that in case a service goes down, it\u2019ll start back up twice as fast!<\/p>\n<p><span style=\"color: #3366ff;font-size: small\"><strong>Taking call stacks on your production servers<\/strong><\/span><\/p>\n<p><span style=\"color: #3366ff\"><strong>Sample-based profiling in production<\/strong><\/span><br \/>\nAlso new to Windows Server 2012 is the ability to collect call stacks for 64-bit .NET applications that are JIT compiled.<\/p>\n<p>We use performance counters as our primary monitoring mechanism, and as the first line of notification to our operational staff. They range from the ones we\u2019ve discussed here (time in GC, and ASP.NET requests queued) to other important ones such as %CPU time and number of exceptions thrown.<\/p>\n<p>Performance counters are extremely valuable for detecting performance degradation because they give insight into operational health. However, they are usually not sufficient to diagnose the \u201croot cause\u201d of a performance problem. So let\u2019s say a performance counter spiked. For example, our %CPU time doubled, which in turn impacted latency. What\u2019s our next step? With Windows Server 2012, our next step is now to enable low-overhead sample-based profiling.<\/p>\n<p>Windows Server 2012 introduces the ability to perform sample-based profiling on 64-bit, JIT-compiled .NET applications via the Event Tracing for Windows (ETW) system. If you\u2019re familiar with ETW, you\u2019ll know that it\u2019s a system-wide service that does not require process restarts; it\u2019s non-invasive (in other words, no attaching to a process), and depending on the events you subscribe to, it also has low overhead: approximately 10 percent CPU cost when profiling is active.<\/p>\n<p><a href=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/0172.Figure205.jpg\"><img decoding=\"async\" src=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/0172.Figure205.jpg\" alt=\" \" border=\"0\" \/><\/a><\/p>\n<p>The upward trend of %CPU time spent only increased from 80 percent to 90 percent. This translates to roughly equal percentage degradation in latencies, as shown in the following graph.<\/p>\n<p><a href=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/4212.Figure206.jpg\"><img decoding=\"async\" src=\"https:\/\/cloudblogs.microsoft.com\/wp-content\/uploads\/2018\/03\/4212.Figure206.jpg\" alt=\" \" border=\"0\" \/><\/a><\/p>\n<p>A 10 percent hit to performance can be acceptable at times when it is critical to diagnose the \u201croot cause\u201d of a performance problem.<\/p>\n<p>We\u2019ve spoken here about sample based profiling, but this feature extends to many other types of ETW events, including context switch events and ReadyThread events. For example, not only can you analyze CPU-bound problems, but also you can attempt to resolve problems that are stemming from I\/O or thread-scheduling. (Note that enabling context-switch analysis is much more costly than profiling, with close to a 30 percent impact on CPU in our applications case.)<\/p>\n<p>Sometimes there are problems that are only reproducible in a production environment, at scale. The ability to turn on a low-overhead logging facility that can profile your system is an incredible advantage \u2014and with Windows Server 2012, managed applications now have the full support and parity with their native counterparts.<\/p>\n<p>(Note that while Windows Server 2008 introduced the ability to take call stacks on sample profile ETW events, it did not work for 64-bit applications that were JITted.)<\/p>\n<p><span style=\"color: #3366ff;font-size: small\"><strong>Hyper-V 3 and guest NUMA support<\/strong><\/span><br \/>\nBefore Windows Server 2012, virtualization implied overhead, even with all the accompanying benefits. Specifically, the cost of a software indirection imposed by virtualization was not acceptable. Moreover, the limitation on virtual cores (4) proved to be a throughput bottleneck in our synthetic lab testing.<\/p>\n<p>However, with Windows Server 2012 comes Hyper-V 3, and with it a host of \u201cscale\u201d features. In particular, we were particularly excited about guest NUMA support. The ability to detect the NUMA topology is critical for making intelligent decisions about memory allocation; minimizing cross-node memory accesses is sometimes the key ingredient to making applications faster.<\/p>\n<p>With the new Windows Server 2012 implementation, and with the accompanying NUMA efficiency from within a guest operating system, we are reevaluating using Hyper-V 3. We anticipate that Hyper-V will allow us to meet our performance targets, while also delivering large cost savings.<\/p>\n<p><span style=\"color: #3366ff;font-size: small\"><strong>Cloud business and cloud-optimized operating system<\/strong><\/span><br \/>\nBing.com has already seen significant improvements by switching to Windows Server 2012 with the public RC. We basically cut %CPU time usage in half for critical servicing of managed applications (including GC) and startup times when restarting services. We achieved significant performance gains by making process monitoring easier and building it into the operating system. And we are exploring how we can use NUMA efficiency with Hyper-V 3 to enhance our service with virtualization. Bing.com-\u2014a recognizably successful and large-scale, enterprise cloud service\u2014represents how we built Windows Server 2012 to be a truly cloud-optimized operating system.<\/p>\n<p>Bing.com is a cloud service. It\u2019s a fast cloud service, and it runs on thousands of computers that span many datacenters across the globe. And now it\u2019s optimized with Windows Server 2012.<\/p>\n<p><span style=\"color: #3366ff;font-size: small\"><strong>Summary<\/strong><\/span><br \/>\nThe promise of the new Windows Server 2012 features intrigued the Bing.com team as we considered migrating to the latest operating system. What began as exploratory evaluations of the impact of a migration quickly led to a full-scale deployment, which benefited greatly from the built-in .NET 4.5 functionality, multicore JIT functionality, and potentially, the much-improved Hyper-V 3 functionality.<\/p>\n<p>Now that you understand the inner workings of these Bing.com optimizations, one last reminder before you depart: All Bing.com search results worldwide are being served by Windows Server 2012!<\/p>\n<ul>\n<li>Built-in .NET 4.5, included with Windows Server 2012, including the background garbage collection and associated improved latencies<\/li>\n<li>Improved performance at startup, enabled by the multicore JIT functionality of .NET 4.5<\/li>\n<li>Ability to collect call stacks for 64-bit .NET JITted applications<\/li>\n<li>A clear future to Hyper-V 3 adoption<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Updated 7\/25\/2012: The .NET team posted a deep dive into the runtime improvements in the .NET Framework 4.5, specifically in the CLR Garbage Collector. These are the same improvements that we posted on earlier, which the Bing team saw on Windows Server 2012. It is great to see the .<\/p>\n","protected":false},"author":742,"featured_media":20643,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[140,23,386],"product":[],"content-type":[964],"solution":[952],"coauthors":[],"class_list":["post-963","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-hyper-v","tag-windows-server","tag-windows-server-2012","content-type-updates","solution-server-management","review-flag-1593580427-982","review-flag-1593580409-206","review-flag-3-1593580441-66","review-flag-4-1593580446-763","review-flag-5-1593580451-829","review-flag-7-1593580462-674","review-flag-new-1593580246-692"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Bing.com runs on Windows Server 2012! | Microsoft Windows Server Blog<\/title>\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.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bing.com runs on Windows Server 2012! | Microsoft Windows Server Blog\" \/>\n<meta property=\"og:description\" content=\"Updated 7\/25\/2012: The .NET team posted a deep dive into the runtime improvements in the .NET Framework 4.5, specifically in the CLR Garbage Collector. These are the same improvements that we posted on earlier, which the Bing team saw on Windows Server 2012. It is great to see the .\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Windows Server Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/WindowsServer\" \/>\n<meta property=\"article:published_time\" content=\"2012-06-07T10:11:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-08T18:18:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeffrey Snover\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@WindowsServer\" \/>\n<meta name=\"twitter:site\" content=\"@WindowsServer\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeffrey Snover\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/\"},\"author\":[{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/author\/jeffrey-snover-windows-server\/\",\"@type\":\"Person\",\"@name\":\"Jeffrey Snover\"}],\"headline\":\"Bing.com runs on Windows Server 2012!\",\"datePublished\":\"2012-06-07T10:11:00+00:00\",\"dateModified\":\"2024-03-08T18:18:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/\"},\"wordCount\":1715,\"commentCount\":16,\"publisher\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg\",\"keywords\":[\"Hyper-V\",\"Windows Server\",\"Windows Server 2012\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/\",\"name\":\"Bing.com runs on Windows Server 2012! | Microsoft Windows Server Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg\",\"datePublished\":\"2012-06-07T10:11:00+00:00\",\"dateModified\":\"2024-03-08T18:18:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#primaryimage\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg\",\"contentUrl\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg\",\"width\":1170,\"height\":640,\"caption\":\"a group of people sitting at a table using a laptop computer\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bing.com runs on Windows Server 2012!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#website\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/\",\"name\":\"Microsoft Windows Server Blog\",\"description\":\"Your Guide to the Latest Windows Server Product Information\",\"publisher\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#organization\",\"name\":\"Microsoft Windows Server Blog\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":1,\"height\":1,\"caption\":\"Microsoft Windows Server Blog\"},\"image\":{\"@id\":\"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/WindowsServer\",\"https:\/\/x.com\/WindowsServer\",\"https:\/\/www.linkedin.com\/showcase\/microsoft-cloud-platform\/\",\"https:\/\/www.youtube.com\/user\/MSCloudOS\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bing.com runs on Windows Server 2012! | Microsoft Windows Server Blog","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.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/","og_locale":"en_US","og_type":"article","og_title":"Bing.com runs on Windows Server 2012! | Microsoft Windows Server Blog","og_description":"Updated 7\/25\/2012: The .NET team posted a deep dive into the runtime improvements in the .NET Framework 4.5, specifically in the CLR Garbage Collector. These are the same improvements that we posted on earlier, which the Bing team saw on Windows Server 2012. It is great to see the .","og_url":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/","og_site_name":"Microsoft Windows Server Blog","article_publisher":"https:\/\/www.facebook.com\/WindowsServer","article_published_time":"2012-06-07T10:11:00+00:00","article_modified_time":"2024-03-08T18:18:50+00:00","og_image":[{"width":1170,"height":640,"url":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg","type":"image\/jpeg"}],"author":"Jeffrey Snover","twitter_card":"summary_large_image","twitter_creator":"@WindowsServer","twitter_site":"@WindowsServer","twitter_misc":{"Written by":"Jeffrey Snover","Est. reading time":"7 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#article","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/"},"author":[{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/author\/jeffrey-snover-windows-server\/","@type":"Person","@name":"Jeffrey Snover"}],"headline":"Bing.com runs on Windows Server 2012!","datePublished":"2012-06-07T10:11:00+00:00","dateModified":"2024-03-08T18:18:50+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/"},"wordCount":1715,"commentCount":16,"publisher":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#organization"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg","keywords":["Hyper-V","Windows Server","Windows Server 2012"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/","url":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/","name":"Bing.com runs on Windows Server 2012! | Microsoft Windows Server Blog","isPartOf":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#primaryimage"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#primaryimage"},"thumbnailUrl":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg","datePublished":"2012-06-07T10:11:00+00:00","dateModified":"2024-03-08T18:18:50+00:00","breadcrumb":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#primaryimage","url":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg","contentUrl":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2024\/03\/Developers-working.jpg","width":1170,"height":640,"caption":"a group of people sitting at a table using a laptop computer"},{"@type":"BreadcrumbList","@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/2012\/06\/07\/bing-com-runs-on-windows-server-2012\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/"},{"@type":"ListItem","position":2,"name":"Bing.com runs on Windows Server 2012!"}]},{"@type":"WebSite","@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#website","url":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/","name":"Microsoft Windows Server Blog","description":"Your Guide to the Latest Windows Server Product Information","publisher":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#organization","name":"Microsoft Windows Server Blog","url":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":1,"height":1,"caption":"Microsoft Windows Server Blog"},"image":{"@id":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/WindowsServer","https:\/\/x.com\/WindowsServer","https:\/\/www.linkedin.com\/showcase\/microsoft-cloud-platform\/","https:\/\/www.youtube.com\/user\/MSCloudOS"]}]}},"word_count":1708,"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Windows Server Blog","distributor_original_site_url":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/posts\/963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/users\/742"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/comments?post=963"}],"version-history":[{"count":0,"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/posts\/963\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/media\/20643"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/media?parent=963"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/post_tag?post=963"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/product?post=963"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/content-type?post=963"},{"taxonomy":"solution","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/solution?post=963"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/windows-server\/blog\/wp-json\/wp\/v2\/coauthors?post=963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}