[{"data":1,"prerenderedAt":2050},["ShallowReactive",2],{"docs-page-en-\u002Fdocs\u002Fservices\u002Fazure-vm":3,"docs-navigation-en":1954,"docs-surround-en-\u002Fdocs\u002Fservices\u002Fazure-vm":2045},{"id":4,"title":5,"body":6,"claimDependencies":1936,"description":1940,"extension":1941,"locale":1942,"meta":1943,"missingMedia":1944,"navigation":644,"owner":1945,"path":1946,"reviewStatus":1947,"seo":1948,"staleLinks":1949,"stem":1950,"technicalRisk":1951,"translationKey":1952,"__hash__":1953},"docs_en\u002Fdocs\u002F5.services\u002F8.azure-vm.md","Azure VM Optimization",{"type":7,"value":8,"toc":1893},"minimark",[9,13,18,21,50,54,59,62,67,78,83,109,115,119,122,126,132,146,152,166,170,176,190,194,200,214,220,234,238,244,258,262,268,279,283,289,292,312,317,325,328,332,336,339,345,387,393,410,415,426,432,440,444,447,452,466,471,497,502,516,521,535,539,542,547,552,558,562,566,572,576,580,586,590,594,600,604,607,612,953,958,1204,1208,1212,1217,1232,1237,1255,1259,1262,1267,1281,1286,1300,1304,1307,1321,1325,1329,1334,1345,1350,1361,1365,1369,1380,1384,1395,1399,1403,1414,1418,1429,1433,1437,1448,1452,1466,1470,1474,1479,1482,1496,1499,1504,1507,1518,1523,1526,1546,1550,1555,1558,1569,1574,1588,1593,1595,1606,1610,1625,1629,1633,1636,1656,1660,1674,1678,1681,1705,1709,1714,1734,1740,1744,1747,1819,1828,1832,1835,1867,1870,1875,1889],[10,11,12],"p",{},"Jetscale provides AI-powered cost optimization for Azure Virtual Machines. Our specialized agents analyze your compute workloads to identify right-sizing opportunities, VM family migrations, and cost-effective alternatives.",[14,15,17],"h2",{"id":16},"overview","Overview",[10,19,20],{},"Jetscale optimizes Azure VM resources by analyzing:",[22,23,24,32,38,44],"ul",{},[25,26,27,31],"li",{},[28,29,30],"strong",{},"Instance utilization",": CPU, memory, disk, and network usage patterns",[25,33,34,37],{},[28,35,36],{},"Cost analysis",": Current spending vs. optimal configuration",[25,39,40,43],{},[28,41,42],{},"Workload characteristics",": Resource requirements and performance patterns",[25,45,46,49],{},[28,47,48],{},"Pricing options",": Pay-as-you-go, Reserved Instances, Spot VMs",[14,51,53],{"id":52},"supported-vm-types","Supported VM Types",[55,56,58],"h3",{"id":57},"standalone-virtual-machines","Standalone Virtual Machines",[10,60,61],{},"Jetscale optimizes standalone Azure VMs that are not part of Virtual Machine Scale Sets (VMSS).",[10,63,64],{},[28,65,66],{},"VM Architecture:",[68,69,74],"pre",{"className":70,"code":72,"language":73},[71],"language-text","VirtualMachine (Optimization Target, Billable)\n├── OSDisk - Billable\n├── DataDisk - Billable (optimized separately)\n└── DataDisk - Billable\n","text",[75,76,72],"code",{"__ignoreMap":77},"",[10,79,80],{},[28,81,82],{},"What We Optimize:",[22,84,85,91,97,103],{},[25,86,87,90],{},[28,88,89],{},"VM size right-sizing",": Change to smaller\u002Flarger sizes based on actual usage",[25,92,93,96],{},[28,94,95],{},"VM series migration",": Switch between series (B, D, E, F, etc.) based on workload characteristics",[25,98,99,102],{},[28,100,101],{},"Generation upgrades",": Migrate to latest generation (v5, v6) for better price\u002Fperformance",[25,104,105,108],{},[28,106,107],{},"Delete unused",": Remove VMs with zero or near-zero activity (100% savings)",[10,110,111,114],{},[28,112,113],{},"Important:"," Jetscale currently optimizes standalone Azure VMs only. VMs managed by Virtual Machine Scale Sets, AKS, or other orchestration systems are not yet supported.",[14,116,118],{"id":117},"vm-series-and-families","VM Series and Families",[10,120,121],{},"Jetscale considers all Azure VM series when optimizing:",[55,123,125],{"id":124},"general-purpose-b-d","General Purpose (B, D)",[10,127,128,131],{},[28,129,130],{},"B-series"," - Burstable VMs",[22,133,134,137,140,143],{},[25,135,136],{},"Use for: Dev\u002Ftest, low-traffic web servers, small databases, microservices",[25,138,139],{},"Best when: CPU usage is low most of the time with occasional bursts",[25,141,142],{},"Caution: Based on CPU credits, monitor credit balance to avoid throttling",[25,144,145],{},"Sizes: B1s, B1ms, B2s, B2ms, B4ms, B8ms, B12ms, B16ms, B20ms",[10,147,148,151],{},[28,149,150],{},"D-series"," - Balanced compute\u002Fmemory\u002Fnetwork",[22,153,154,157,160,163],{},[25,155,156],{},"Use for: Web servers, application servers, medium databases, mixed workloads",[25,158,159],{},"Latest generations: Dv5\u002FDsv5 > Dv4\u002FDsv4 > Dv3\u002FDsv3",[25,161,162],{},"Available in: Standard HDD, Standard SSD, Premium SSD",[25,164,165],{},"Sizes: D2-D96 (2-96 vCPUs)",[55,167,169],{"id":168},"compute-optimized-f","Compute Optimized (F)",[10,171,172,175],{},[28,173,174],{},"F-series"," - High CPU-to-memory ratio",[22,177,178,181,184,187],{},[25,179,180],{},"Use for: Batch processing, application servers, web servers, analytics, gaming",[25,182,183],{},"Best when: CPU utilization is consistently high, memory needs are moderate",[25,185,186],{},"Latest generations: Fv2 (Intel), Fasv5\u002FFamsv5 (AMD)",[25,188,189],{},"Sizes: F2-F72 (2-72 vCPUs)",[55,191,193],{"id":192},"memory-optimized-e-m","Memory Optimized (E, M)",[10,195,196,199],{},[28,197,198],{},"E-series"," - High memory-to-CPU ratio",[22,201,202,205,208,211],{},[25,203,204],{},"Use for: Relational databases, in-memory analytics, SAP applications, caching",[25,206,207],{},"Best when: Memory utilization is high, CPU is moderate",[25,209,210],{},"Latest generations: Ev5\u002FEsv5 > Ev4\u002FEsv4 > Ev3\u002FEsv3",[25,212,213],{},"Sizes: E2-E96 (2-96 vCPUs, up to 672 GB RAM)",[10,215,216,219],{},[28,217,218],{},"M-series"," - Extreme memory (up to 4 TB RAM)",[22,221,222,225,228,231],{},[25,223,224],{},"Use for: Large SQL Server, SAP HANA, in-memory databases",[25,226,227],{},"Cost premium: Significantly higher than E-series",[25,229,230],{},"Mission-critical workloads requiring massive memory",[25,232,233],{},"Sizes: M8ms - M416ms (8-416 vCPUs)",[55,235,237],{"id":236},"storage-optimized-l","Storage Optimized (L)",[10,239,240,243],{},[28,241,242],{},"L-series"," - High disk throughput and I\u002FO",[22,245,246,249,252,255],{},[25,247,248],{},"Use for: Big data, SQL databases, NoSQL databases, data warehousing",[25,250,251],{},"NVMe-based local storage",[25,253,254],{},"Best for: I\u002FO-intensive workloads requiring low latency",[25,256,257],{},"Sizes: L4s-L80s (4-80 vCPUs)",[55,259,261],{"id":260},"accelerated-computing-n","Accelerated Computing (N)",[10,263,264,267],{},[28,265,266],{},"N-series"," - GPU-enabled VMs",[22,269,270,273,276],{},[25,271,272],{},"Use for: AI\u002FML training and inference, graphics rendering, video processing",[25,274,275],{},"Options: NC (NVIDIA Tesla), NV (NVIDIA Tesla M60), ND (NVIDIA Tesla P40\u002FV100)",[25,277,278],{},"Not typically recommended for general cost optimization (specialized workloads)",[55,280,282],{"id":281},"vm-sizing-patterns","VM Sizing Patterns",[10,284,285,286],{},"Sizes follow pattern: ",[75,287,288],{},"{Series}{Version}{Size}",[10,290,291],{},"Examples:",[22,293,294,300,306],{},[25,295,296,299],{},[28,297,298],{},"B2s",": B-series, 2 vCPUs, Standard disk support",[25,301,302,305],{},[28,303,304],{},"D4s_v5",": D-series v5, 4 vCPUs, Premium SSD support",[25,307,308,311],{},[28,309,310],{},"E8as_v5",": E-series v5 AMD, 8 vCPUs, Premium SSD support",[10,313,314],{},[28,315,316],{},"Size progression:",[22,318,319,322],{},[25,320,321],{},"Standard: 1, 2, 4, 8, 16, 32, 64, 96+ vCPUs",[25,323,324],{},"Burstable: 1, 2, 4, 8, 12, 16, 20 vCPUs",[10,326,327],{},"Each step typically doubles vCPU and memory.",[14,329,331],{"id":330},"how-jetscale-optimizes-azure-vms","How Jetscale Optimizes Azure VMs",[55,333,335],{"id":334},"_1-data-collection","1. Data Collection",[10,337,338],{},"Jetscale analyzes multiple data sources:",[10,340,341,344],{},[28,342,343],{},"Azure Monitor Metrics"," (14-day rolling window):",[22,346,347,353,359,369,378],{},[25,348,349,352],{},[75,350,351],{},"Percentage CPU"," - VM CPU usage",[25,354,355,358],{},[75,356,357],{},"Available Memory Bytes"," - Available memory",[25,360,361,364,365,368],{},[75,362,363],{},"Network In Total"," \u002F ",[75,366,367],{},"Network Out Total"," - Network throughput",[25,370,371,364,374,377],{},[75,372,373],{},"Disk Read Bytes",[75,375,376],{},"Disk Write Bytes"," - Disk I\u002FO",[25,379,380,364,383,386],{},[75,381,382],{},"Disk Read Operations\u002FSec",[75,384,385],{},"Disk Write Operations\u002FSec"," - IOPS",[10,388,389,392],{},[28,390,391],{},"Azure Resource Manager Data",":",[22,394,395,398,401,404,407],{},[25,396,397],{},"VM size and state",[25,399,400],{},"OS type (Windows\u002FLinux)",[25,402,403],{},"Creation time",[25,405,406],{},"Location and availability zone",[25,408,409],{},"Tags and resource groups",[10,411,412,392],{},[28,413,414],{},"Cost Management Data",[22,416,417,420,423],{},[25,418,419],{},"Current monthly spend per VM",[25,421,422],{},"Historical cost trends",[25,424,425],{},"Reserved Instance coverage",[10,427,428,431],{},[28,429,430],{},"Azure Advisor"," (if available):",[22,433,434,437],{},[25,435,436],{},"Azure-generated right-sizing recommendations",[25,438,439],{},"Performance risk assessments",[55,441,443],{"id":442},"_2-analysis","2. Analysis",[10,445,446],{},"Our AI agents perform deep analysis:",[10,448,449],{},[28,450,451],{},"Utilization Patterns:",[22,453,454,457,460,463],{},[25,455,456],{},"Peak vs. average CPU utilization",[25,458,459],{},"Time-of-day patterns (identify idle periods)",[25,461,462],{},"Day-of-week patterns (weekend vs. weekday load)",[25,464,465],{},"Memory usage trends",[10,467,468],{},[28,469,470],{},"Workload Classification:",[22,472,473,479,485,491],{},[25,474,475,478],{},[28,476,477],{},"Variable CPU",": Consider B-series (burstable)",[25,480,481,484],{},[28,482,483],{},"Steady high CPU",": Consider F-series (compute optimized)",[25,486,487,490],{},[28,488,489],{},"Balanced",": Consider D-series (general purpose)",[25,492,493,496],{},[28,494,495],{},"Memory-intensive",": Consider E-series (memory optimized)",[10,498,499],{},[28,500,501],{},"Cost Modeling:",[22,503,504,507,510,513],{},[25,505,506],{},"Current monthly cost",[25,508,509],{},"Projected cost for alternative VM sizes",[25,511,512],{},"Savings percentage and annual impact",[25,514,515],{},"Reserved Instance opportunities",[10,517,518],{},[28,519,520],{},"Risk Evaluation:",[22,522,523,526,529,532],{},[25,524,525],{},"Performance degradation probability",[25,527,528],{},"Headroom calculation (buffer above peak usage)",[25,530,531],{},"Memory safety checks",[25,533,534],{},"Network and storage capacity validation",[55,536,538],{"id":537},"_3-recommendations","3. Recommendations",[10,540,541],{},"Jetscale generates specific, actionable recommendations:",[543,544,546],"h4",{"id":545},"vm-right-sizing","VM Right-Sizing",[10,548,549],{},[28,550,551],{},"Example Recommendation:",[68,553,556],{"className":554,"code":555,"language":73},[71],"Resource: web-server-prod-01\nCurrent: Standard_D16s_v5 (16 vCPUs, 64 GB RAM)\nRecommended: Standard_D8s_v5 (8 vCPUs, 32 GB RAM)\n\nCost Impact:\n- Current: $550\u002Fmonth\n- Projected: $275\u002Fmonth\n- Savings: $275\u002Fmonth (50%), $3,300\u002Fyear\n\nPerformance Analysis:\n- Average CPU: 18%\n- Peak CPU: 32%\n- Average Memory: 35%\n- Recommended provides 2x headroom above peak\n\nRisk: Low - Ample headroom maintained\n",[75,557,555],{"__ignoreMap":77},[543,559,561],{"id":560},"series-migration","Series Migration",[10,563,564],{},[28,565,551],{},[68,567,570],{"className":568,"code":569,"language":73},[71],"Resource: batch-processor-02\nCurrent: Standard_D8s_v5 (8 vCPUs, 32 GB RAM)\nRecommended: Standard_F8s_v2 (8 vCPUs, 16 GB RAM)\n\nCost Impact:\n- Current: $275\u002Fmonth\n- Projected: $233\u002Fmonth\n- Savings: $42\u002Fmonth (15%), $504\u002Fyear\n\nWorkload Analysis:\n- Average CPU: 75%\n- Peak CPU: 92%\n- Memory usage: Low (28%)\n- Workload type: Compute-intensive, memory underutilized\n\nRecommendation: Migrate to F-series (compute optimized)\nRisk: Very Low - CPU-bound workload, memory headroom adequate\n",[75,571,569],{"__ignoreMap":77},[543,573,575],{"id":574},"generation-upgrade","Generation Upgrade",[10,577,578],{},[28,579,551],{},[68,581,584],{"className":582,"code":583,"language":73},[71],"Resource: api-server-01\nCurrent: Standard_D4s_v3 (4 vCPUs, 16 GB RAM)\nRecommended: Standard_D4s_v5 (4 vCPUs, 16 GB RAM)\n\nCost Impact:\n- Current: $175\u002Fmonth\n- Projected: $165\u002Fmonth\n- Savings: $10\u002Fmonth (6%), $120\u002Fyear\n\nPerformance Analysis:\n- v5 offers better CPU performance (Intel Xeon Platinum 8370C)\n- Same specifications, lower cost\n- Better network performance (up to 12.5 Gbps)\n- Newer generation efficiency\n\nRisk: Very Low - Same series, newer generation\n",[75,585,583],{"__ignoreMap":77},[543,587,589],{"id":588},"delete-unused-vm","Delete Unused VM",[10,591,592],{},[28,593,551],{},[68,595,598],{"className":596,"code":597,"language":73},[71],"Resource: legacy-test-vm\nCurrent: Standard_B2s (2 vCPUs, 4 GB RAM)\nRecommended: Delete\u002FDeallocate\n\nCost Impact:\n- Current: $30\u002Fmonth\n- Projected: $0\u002Fmonth\n- Savings: $30\u002Fmonth (100%), $360\u002Fyear\n\nUsage Analysis:\n- Average CPU: 0.3%\n- Network activity: Near zero\n- Created: 14 months ago\n- Tags indicate: test environment\n\nRisk: Very Low - Appears unused\nRecommendation: Verify with application team before deletion\n",[75,599,597],{"__ignoreMap":77},[55,601,603],{"id":602},"_4-terraform-generation","4. Terraform Generation",[10,605,606],{},"For each recommendation, Jetscale generates production-ready Terraform code:",[10,608,609],{},[28,610,611],{},"Example: VM Right-Sizing",[68,613,617],{"className":614,"code":615,"language":616,"meta":77,"style":77},"language-hcl shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Azure VM Optimization\n# Generated by Jetscale on 2024-01-15\n# Recommendation ID: rec_azurevm_001\n\nresource \"azurerm_linux_virtual_machine\" \"web_server_prod_01\" {\n  name                = \"web-server-prod-01\"\n  resource_group_name = var.resource_group_name\n  location            = var.location\n\n  # Previous: Standard_D16s_v5 ($550\u002Fmonth)\n  # Optimized: Standard_D8s_v5 ($275\u002Fmonth)\n  # Cost Reduction: 50% ($275\u002Fmonth, $3,300\u002Fyear)\n  #\n  # Justification:\n  # - Average CPU utilization: 18%\n  # - Peak CPU utilization: 32%\n  # - Average memory utilization: 35%\n  # - New size provides 2x headroom above peak usage\n  size = \"Standard_D8s_v5\"\n\n  admin_username = var.admin_username\n\n  admin_ssh_key {\n    username   = var.admin_username\n    public_key = var.ssh_public_key\n  }\n\n  network_interface_ids = [\n    azurerm_network_interface.web_server_nic.id,\n  ]\n\n  os_disk {\n    caching              = \"ReadWrite\"\n    storage_account_type = \"Premium_LRS\"\n    disk_size_gb         = 128\n  }\n\n  source_image_reference {\n    publisher = \"Canonical\"\n    offer     = \"0001-com-ubuntu-server-focal\"\n    sku       = \"20_04-lts-gen2\"\n    version   = \"latest\"\n  }\n\n  tags = merge(\n    var.tags,\n    {\n      \"jetscale:optimized\"      = \"true\"\n      \"jetscale:recommendation\" = \"rec_azurevm_001\"\n      \"jetscale:previous_size\"  = \"Standard_D16s_v5\"\n    }\n  )\n\n  lifecycle {\n    create_before_destroy = true\n  }\n}\n","hcl",[75,618,619,627,633,639,646,652,658,664,670,675,681,687,693,699,705,711,717,723,729,735,740,746,751,757,763,769,775,780,786,792,798,803,809,815,821,827,832,837,843,849,855,861,867,872,877,883,889,895,901,907,913,919,925,930,936,942,947],{"__ignoreMap":77},[620,621,624],"span",{"class":622,"line":623},"line",1,[620,625,626],{},"# Azure VM Optimization\n",[620,628,630],{"class":622,"line":629},2,[620,631,632],{},"# Generated by Jetscale on 2024-01-15\n",[620,634,636],{"class":622,"line":635},3,[620,637,638],{},"# Recommendation ID: rec_azurevm_001\n",[620,640,642],{"class":622,"line":641},4,[620,643,645],{"emptyLinePlaceholder":644},true,"\n",[620,647,649],{"class":622,"line":648},5,[620,650,651],{},"resource \"azurerm_linux_virtual_machine\" \"web_server_prod_01\" {\n",[620,653,655],{"class":622,"line":654},6,[620,656,657],{},"  name                = \"web-server-prod-01\"\n",[620,659,661],{"class":622,"line":660},7,[620,662,663],{},"  resource_group_name = var.resource_group_name\n",[620,665,667],{"class":622,"line":666},8,[620,668,669],{},"  location            = var.location\n",[620,671,673],{"class":622,"line":672},9,[620,674,645],{"emptyLinePlaceholder":644},[620,676,678],{"class":622,"line":677},10,[620,679,680],{},"  # Previous: Standard_D16s_v5 ($550\u002Fmonth)\n",[620,682,684],{"class":622,"line":683},11,[620,685,686],{},"  # Optimized: Standard_D8s_v5 ($275\u002Fmonth)\n",[620,688,690],{"class":622,"line":689},12,[620,691,692],{},"  # Cost Reduction: 50% ($275\u002Fmonth, $3,300\u002Fyear)\n",[620,694,696],{"class":622,"line":695},13,[620,697,698],{},"  #\n",[620,700,702],{"class":622,"line":701},14,[620,703,704],{},"  # Justification:\n",[620,706,708],{"class":622,"line":707},15,[620,709,710],{},"  # - Average CPU utilization: 18%\n",[620,712,714],{"class":622,"line":713},16,[620,715,716],{},"  # - Peak CPU utilization: 32%\n",[620,718,720],{"class":622,"line":719},17,[620,721,722],{},"  # - Average memory utilization: 35%\n",[620,724,726],{"class":622,"line":725},18,[620,727,728],{},"  # - New size provides 2x headroom above peak usage\n",[620,730,732],{"class":622,"line":731},19,[620,733,734],{},"  size = \"Standard_D8s_v5\"\n",[620,736,738],{"class":622,"line":737},20,[620,739,645],{"emptyLinePlaceholder":644},[620,741,743],{"class":622,"line":742},21,[620,744,745],{},"  admin_username = var.admin_username\n",[620,747,749],{"class":622,"line":748},22,[620,750,645],{"emptyLinePlaceholder":644},[620,752,754],{"class":622,"line":753},23,[620,755,756],{},"  admin_ssh_key {\n",[620,758,760],{"class":622,"line":759},24,[620,761,762],{},"    username   = var.admin_username\n",[620,764,766],{"class":622,"line":765},25,[620,767,768],{},"    public_key = var.ssh_public_key\n",[620,770,772],{"class":622,"line":771},26,[620,773,774],{},"  }\n",[620,776,778],{"class":622,"line":777},27,[620,779,645],{"emptyLinePlaceholder":644},[620,781,783],{"class":622,"line":782},28,[620,784,785],{},"  network_interface_ids = [\n",[620,787,789],{"class":622,"line":788},29,[620,790,791],{},"    azurerm_network_interface.web_server_nic.id,\n",[620,793,795],{"class":622,"line":794},30,[620,796,797],{},"  ]\n",[620,799,801],{"class":622,"line":800},31,[620,802,645],{"emptyLinePlaceholder":644},[620,804,806],{"class":622,"line":805},32,[620,807,808],{},"  os_disk {\n",[620,810,812],{"class":622,"line":811},33,[620,813,814],{},"    caching              = \"ReadWrite\"\n",[620,816,818],{"class":622,"line":817},34,[620,819,820],{},"    storage_account_type = \"Premium_LRS\"\n",[620,822,824],{"class":622,"line":823},35,[620,825,826],{},"    disk_size_gb         = 128\n",[620,828,830],{"class":622,"line":829},36,[620,831,774],{},[620,833,835],{"class":622,"line":834},37,[620,836,645],{"emptyLinePlaceholder":644},[620,838,840],{"class":622,"line":839},38,[620,841,842],{},"  source_image_reference {\n",[620,844,846],{"class":622,"line":845},39,[620,847,848],{},"    publisher = \"Canonical\"\n",[620,850,852],{"class":622,"line":851},40,[620,853,854],{},"    offer     = \"0001-com-ubuntu-server-focal\"\n",[620,856,858],{"class":622,"line":857},41,[620,859,860],{},"    sku       = \"20_04-lts-gen2\"\n",[620,862,864],{"class":622,"line":863},42,[620,865,866],{},"    version   = \"latest\"\n",[620,868,870],{"class":622,"line":869},43,[620,871,774],{},[620,873,875],{"class":622,"line":874},44,[620,876,645],{"emptyLinePlaceholder":644},[620,878,880],{"class":622,"line":879},45,[620,881,882],{},"  tags = merge(\n",[620,884,886],{"class":622,"line":885},46,[620,887,888],{},"    var.tags,\n",[620,890,892],{"class":622,"line":891},47,[620,893,894],{},"    {\n",[620,896,898],{"class":622,"line":897},48,[620,899,900],{},"      \"jetscale:optimized\"      = \"true\"\n",[620,902,904],{"class":622,"line":903},49,[620,905,906],{},"      \"jetscale:recommendation\" = \"rec_azurevm_001\"\n",[620,908,910],{"class":622,"line":909},50,[620,911,912],{},"      \"jetscale:previous_size\"  = \"Standard_D16s_v5\"\n",[620,914,916],{"class":622,"line":915},51,[620,917,918],{},"    }\n",[620,920,922],{"class":622,"line":921},52,[620,923,924],{},"  )\n",[620,926,928],{"class":622,"line":927},53,[620,929,645],{"emptyLinePlaceholder":644},[620,931,933],{"class":622,"line":932},54,[620,934,935],{},"  lifecycle {\n",[620,937,939],{"class":622,"line":938},55,[620,940,941],{},"    create_before_destroy = true\n",[620,943,945],{"class":622,"line":944},56,[620,946,774],{},[620,948,950],{"class":622,"line":949},57,[620,951,952],{},"}\n",[10,954,955],{},[28,956,957],{},"Example: Series Migration",[68,959,961],{"className":614,"code":960,"language":616,"meta":77,"style":77},"# Azure VM Series Migration\n# Generated by Jetscale on 2024-01-15\n\nresource \"azurerm_linux_virtual_machine\" \"batch_processor_02\" {\n  name                = \"batch-processor-02\"\n  resource_group_name = var.resource_group_name\n  location            = var.location\n\n  # Previous: Standard_D8s_v5 (General Purpose, $275\u002Fmonth)\n  # Optimized: Standard_F8s_v2 (Compute Optimized, $233\u002Fmonth)\n  # Cost Reduction: 15% ($42\u002Fmonth, $504\u002Fyear)\n  #\n  # Workload Analysis:\n  # - Average CPU: 75%, Peak CPU: 92%\n  # - Memory usage: 28% (underutilized)\n  # - Workload type: Compute-intensive\n  # - F-series provides higher CPU-to-memory ratio\n  size = \"Standard_F8s_v2\"\n\n  admin_username = var.admin_username\n\n  admin_ssh_key {\n    username   = var.admin_username\n    public_key = var.ssh_public_key\n  }\n\n  network_interface_ids = [\n    azurerm_network_interface.batch_processor_nic.id,\n  ]\n\n  os_disk {\n    caching              = \"ReadWrite\"\n    storage_account_type = \"Premium_LRS\"\n    disk_size_gb         = 256\n  }\n\n  source_image_reference {\n    publisher = \"Canonical\"\n    offer     = \"0001-com-ubuntu-server-focal\"\n    sku       = \"20_04-lts-gen2\"\n    version   = \"latest\"\n  }\n\n  tags = merge(\n    var.tags,\n    {\n      \"jetscale:optimized\"     = \"true\"\n      \"jetscale:series\"        = \"compute-optimized\"\n      \"jetscale:previous_size\" = \"Standard_D8s_v5\"\n    }\n  )\n\n  lifecycle {\n    create_before_destroy = true\n  }\n}\n",[75,962,963,968,972,976,981,986,990,994,998,1003,1008,1013,1017,1022,1027,1032,1037,1042,1047,1051,1055,1059,1063,1067,1071,1075,1079,1083,1088,1092,1096,1100,1104,1108,1113,1117,1121,1125,1129,1133,1137,1141,1145,1149,1153,1157,1161,1166,1171,1176,1180,1184,1188,1192,1196,1200],{"__ignoreMap":77},[620,964,965],{"class":622,"line":623},[620,966,967],{},"# Azure VM Series Migration\n",[620,969,970],{"class":622,"line":629},[620,971,632],{},[620,973,974],{"class":622,"line":635},[620,975,645],{"emptyLinePlaceholder":644},[620,977,978],{"class":622,"line":641},[620,979,980],{},"resource \"azurerm_linux_virtual_machine\" \"batch_processor_02\" {\n",[620,982,983],{"class":622,"line":648},[620,984,985],{},"  name                = \"batch-processor-02\"\n",[620,987,988],{"class":622,"line":654},[620,989,663],{},[620,991,992],{"class":622,"line":660},[620,993,669],{},[620,995,996],{"class":622,"line":666},[620,997,645],{"emptyLinePlaceholder":644},[620,999,1000],{"class":622,"line":672},[620,1001,1002],{},"  # Previous: Standard_D8s_v5 (General Purpose, $275\u002Fmonth)\n",[620,1004,1005],{"class":622,"line":677},[620,1006,1007],{},"  # Optimized: Standard_F8s_v2 (Compute Optimized, $233\u002Fmonth)\n",[620,1009,1010],{"class":622,"line":683},[620,1011,1012],{},"  # Cost Reduction: 15% ($42\u002Fmonth, $504\u002Fyear)\n",[620,1014,1015],{"class":622,"line":689},[620,1016,698],{},[620,1018,1019],{"class":622,"line":695},[620,1020,1021],{},"  # Workload Analysis:\n",[620,1023,1024],{"class":622,"line":701},[620,1025,1026],{},"  # - Average CPU: 75%, Peak CPU: 92%\n",[620,1028,1029],{"class":622,"line":707},[620,1030,1031],{},"  # - Memory usage: 28% (underutilized)\n",[620,1033,1034],{"class":622,"line":713},[620,1035,1036],{},"  # - Workload type: Compute-intensive\n",[620,1038,1039],{"class":622,"line":719},[620,1040,1041],{},"  # - F-series provides higher CPU-to-memory ratio\n",[620,1043,1044],{"class":622,"line":725},[620,1045,1046],{},"  size = \"Standard_F8s_v2\"\n",[620,1048,1049],{"class":622,"line":731},[620,1050,645],{"emptyLinePlaceholder":644},[620,1052,1053],{"class":622,"line":737},[620,1054,745],{},[620,1056,1057],{"class":622,"line":742},[620,1058,645],{"emptyLinePlaceholder":644},[620,1060,1061],{"class":622,"line":748},[620,1062,756],{},[620,1064,1065],{"class":622,"line":753},[620,1066,762],{},[620,1068,1069],{"class":622,"line":759},[620,1070,768],{},[620,1072,1073],{"class":622,"line":765},[620,1074,774],{},[620,1076,1077],{"class":622,"line":771},[620,1078,645],{"emptyLinePlaceholder":644},[620,1080,1081],{"class":622,"line":777},[620,1082,785],{},[620,1084,1085],{"class":622,"line":782},[620,1086,1087],{},"    azurerm_network_interface.batch_processor_nic.id,\n",[620,1089,1090],{"class":622,"line":788},[620,1091,797],{},[620,1093,1094],{"class":622,"line":794},[620,1095,645],{"emptyLinePlaceholder":644},[620,1097,1098],{"class":622,"line":800},[620,1099,808],{},[620,1101,1102],{"class":622,"line":805},[620,1103,814],{},[620,1105,1106],{"class":622,"line":811},[620,1107,820],{},[620,1109,1110],{"class":622,"line":817},[620,1111,1112],{},"    disk_size_gb         = 256\n",[620,1114,1115],{"class":622,"line":823},[620,1116,774],{},[620,1118,1119],{"class":622,"line":829},[620,1120,645],{"emptyLinePlaceholder":644},[620,1122,1123],{"class":622,"line":834},[620,1124,842],{},[620,1126,1127],{"class":622,"line":839},[620,1128,848],{},[620,1130,1131],{"class":622,"line":845},[620,1132,854],{},[620,1134,1135],{"class":622,"line":851},[620,1136,860],{},[620,1138,1139],{"class":622,"line":857},[620,1140,866],{},[620,1142,1143],{"class":622,"line":863},[620,1144,774],{},[620,1146,1147],{"class":622,"line":869},[620,1148,645],{"emptyLinePlaceholder":644},[620,1150,1151],{"class":622,"line":874},[620,1152,882],{},[620,1154,1155],{"class":622,"line":879},[620,1156,888],{},[620,1158,1159],{"class":622,"line":885},[620,1160,894],{},[620,1162,1163],{"class":622,"line":891},[620,1164,1165],{},"      \"jetscale:optimized\"     = \"true\"\n",[620,1167,1168],{"class":622,"line":897},[620,1169,1170],{},"      \"jetscale:series\"        = \"compute-optimized\"\n",[620,1172,1173],{"class":622,"line":903},[620,1174,1175],{},"      \"jetscale:previous_size\" = \"Standard_D8s_v5\"\n",[620,1177,1178],{"class":622,"line":909},[620,1179,918],{},[620,1181,1182],{"class":622,"line":915},[620,1183,924],{},[620,1185,1186],{"class":622,"line":921},[620,1187,645],{"emptyLinePlaceholder":644},[620,1189,1190],{"class":622,"line":927},[620,1191,935],{},[620,1193,1194],{"class":622,"line":932},[620,1195,941],{},[620,1197,1198],{"class":622,"line":938},[620,1199,774],{},[620,1201,1202],{"class":622,"line":944},[620,1203,952],{},[14,1205,1207],{"id":1206},"best-practices","Best Practices",[55,1209,1211],{"id":1210},"testing-strategy","Testing Strategy",[10,1213,1214],{},[28,1215,1216],{},"Pre-Production Testing:",[1218,1219,1220,1223,1226,1229],"ol",{},[25,1221,1222],{},"Apply changes to dev\u002Fstaging environment first",[25,1224,1225],{},"Run load tests simulating peak traffic",[25,1227,1228],{},"Monitor for 48-72 hours under realistic load",[25,1230,1231],{},"Validate application performance",[10,1233,1234],{},[28,1235,1236],{},"Production Rollout:",[1218,1238,1239,1246,1249,1252],{},[25,1240,1241,1242,1245],{},"Use ",[75,1243,1244],{},"create_before_destroy"," lifecycle in Terraform",[25,1247,1248],{},"Schedule changes during maintenance windows",[25,1250,1251],{},"Have rollback plan ready (previous Terraform state)",[25,1253,1254],{},"Monitor actively during and after change",[55,1256,1258],{"id":1257},"reserved-instances-savings-plans","Reserved Instances & Savings Plans",[10,1260,1261],{},"While Jetscale doesn't currently generate RI recommendations, consider them after right-sizing:",[10,1263,1264],{},[28,1265,1266],{},"Best practice:",[1218,1268,1269,1272,1275,1278],{},[25,1270,1271],{},"Right-size VMs with Jetscale first",[25,1273,1274],{},"Run optimized configuration for 30-60 days",[25,1276,1277],{},"Purchase Reserved Instances for stable workloads (1-year or 3-year)",[25,1279,1280],{},"Never reserve over-sized VMs",[10,1282,1283],{},[28,1284,1285],{},"Azure Reserved VM Instances:",[22,1287,1288,1291,1294,1297],{},[25,1289,1290],{},"Up to 72% savings vs. pay-as-you-go",[25,1292,1293],{},"1-year or 3-year commitment",[25,1295,1296],{},"Size flexibility within same VM series",[25,1298,1299],{},"Payment options: All upfront, Partial upfront, Monthly",[55,1301,1303],{"id":1302},"spot-vms","Spot VMs",[10,1305,1306],{},"For non-critical workloads, consider Azure Spot VMs:",[22,1308,1309,1312,1315,1318],{},[25,1310,1311],{},"Up to 90% savings vs. pay-as-you-go",[25,1313,1314],{},"Best for: Batch processing, dev\u002Ftest, stateless applications",[25,1316,1317],{},"Risk: Can be evicted with 30-second notice when Azure needs capacity",[25,1319,1320],{},"Jetscale identifies candidates for Spot migration (roadmap feature)",[14,1322,1324],{"id":1323},"common-optimization-patterns","Common Optimization Patterns",[55,1326,1328],{"id":1327},"pattern-1-over-provisioned-vms","Pattern 1: Over-Provisioned VMs",[10,1330,1331],{},[28,1332,1333],{},"Symptoms:",[22,1335,1336,1339,1342],{},[25,1337,1338],{},"CPU utilization \u003C 20% average",[25,1340,1341],{},"Memory utilization \u003C 30%",[25,1343,1344],{},"VM running 24\u002F7 with consistent low usage",[10,1346,1347],{},[28,1348,1349],{},"Jetscale Recommendation:",[22,1351,1352,1355,1358],{},[25,1353,1354],{},"Downsize by 1-2 VM sizes (e.g., D16 → D8)",[25,1356,1357],{},"Typical savings: 40-50%",[25,1359,1360],{},"Risk: Low (2-3x headroom maintained)",[55,1362,1364],{"id":1363},"pattern-2-wrong-vm-series","Pattern 2: Wrong VM Series",[10,1366,1367],{},[28,1368,1333],{},[22,1370,1371,1374,1377],{},[25,1372,1373],{},"Using D-series with consistently high CPU (>70%)",[25,1375,1376],{},"Using E-series with low memory usage (\u003C40%)",[25,1378,1379],{},"Using F-series with high memory needs",[10,1381,1382],{},[28,1383,1349],{},[22,1385,1386,1389,1392],{},[25,1387,1388],{},"Migrate to appropriate series (D → F for CPU, E → D for balanced)",[25,1390,1391],{},"Typical savings: 10-30%",[25,1393,1394],{},"Risk: Low to Medium (verify workload characteristics)",[55,1396,1398],{"id":1397},"pattern-3-legacy-generations","Pattern 3: Legacy Generations",[10,1400,1401],{},[28,1402,1333],{},[22,1404,1405,1408,1411],{},[25,1406,1407],{},"Using v3 or v4 VMs",[25,1409,1410],{},"Newer generations available (v5, v6)",[25,1412,1413],{},"Same cost or lower for better performance",[10,1415,1416],{},[28,1417,1349],{},[22,1419,1420,1423,1426],{},[25,1421,1422],{},"Upgrade to latest generation (Dv3 → Dv5, Ev4 → Ev5)",[25,1424,1425],{},"Typical savings: 5-15% with better performance",[25,1427,1428],{},"Risk: Very Low (same series, newer hardware)",[55,1430,1432],{"id":1431},"pattern-4-idle-development-vms","Pattern 4: Idle Development VMs",[10,1434,1435],{},[28,1436,1333],{},[22,1438,1439,1442,1445],{},[25,1440,1441],{},"Dev\u002Ftest VMs running 24\u002F7",[25,1443,1444],{},"Used only during business hours",[25,1446,1447],{},"Low CPU usage overnight and weekends",[10,1449,1450],{},[28,1451,1349],{},[22,1453,1454,1457,1460,1463],{},[25,1455,1456],{},"Implement auto-shutdown schedules (Azure feature)",[25,1458,1459],{},"Downsize to B-series for burstable workloads",[25,1461,1462],{},"Typical savings: 50-70% combined approach",[25,1464,1465],{},"Risk: Very Low (non-production environment)",[14,1467,1469],{"id":1468},"troubleshooting","Troubleshooting",[55,1471,1473],{"id":1472},"recommendation-concerns","Recommendation Concerns",[10,1475,1476],{},[28,1477,1478],{},"Q: Will downsizing my VM impact performance?",[10,1480,1481],{},"A: Jetscale maintains 2-3x headroom above peak usage. We analyze:",[22,1483,1484,1487,1490,1493],{},[25,1485,1486],{},"99th percentile (P99) CPU utilization over 14 days",[25,1488,1489],{},"Peak memory usage",[25,1491,1492],{},"Network saturation points",[25,1494,1495],{},"Historical spike patterns",[10,1497,1498],{},"Recommendations only proceed if performance risk is Low or Very Low.",[10,1500,1501],{},[28,1502,1503],{},"Q: What if I don't have memory metrics?",[10,1505,1506],{},"A: Azure Monitor provides memory metrics by default for all VMs. If metrics are missing:",[1218,1508,1509,1512,1515],{},[25,1510,1511],{},"Verify Azure Monitor agent is installed",[25,1513,1514],{},"Check diagnostics settings are enabled",[25,1516,1517],{},"Wait 14 days for sufficient historical data",[10,1519,1520],{},[28,1521,1522],{},"Q: Can I test without downtime?",[10,1524,1525],{},"A: Yes! Recommended approach:",[1218,1527,1528,1534,1537,1540,1543],{},[25,1529,1241,1530,1533],{},[75,1531,1532],{},"create_before_destroy = true"," in Terraform",[25,1535,1536],{},"New VM launches with optimized size",[25,1538,1539],{},"Health check passes → traffic shifts to new VM",[25,1541,1542],{},"Old VM automatically terminated",[25,1544,1545],{},"Typical downtime: \u003C30 seconds during cutover",[55,1547,1549],{"id":1548},"performance-issues-after-optimization","Performance Issues After Optimization",[10,1551,1552],{},[28,1553,1554],{},"Symptom: Increased latency or response times",[10,1556,1557],{},"Possible causes:",[22,1559,1560,1563,1566],{},[25,1561,1562],{},"Insufficient CPU for peak loads",[25,1564,1565],{},"Memory pressure",[25,1567,1568],{},"Network throughput bottleneck",[10,1570,1571],{},[28,1572,1573],{},"Resolution:",[1218,1575,1576,1579,1582,1585],{},[25,1577,1578],{},"Check Azure Monitor CPU, memory, network metrics",[25,1580,1581],{},"Compare current vs. previous VM performance",[25,1583,1584],{},"If needed, increase VM size by one step",[25,1586,1587],{},"Simple rollback: revert Terraform to previous state",[10,1589,1590],{},[28,1591,1592],{},"Symptom: B-series CPU credit exhaustion",[10,1594,1557],{},[22,1596,1597,1600,1603],{},[25,1598,1599],{},"Migrated from standard VM to burstable",[25,1601,1602],{},"CPU usage higher than B-series baseline",[25,1604,1605],{},"Insufficient CPU credits for workload pattern",[10,1607,1608],{},[28,1609,1573],{},[1218,1611,1612,1619,1622],{},[25,1613,1614,1615,1618],{},"Check ",[75,1616,1617],{},"CPU Credits Remaining"," metric",[25,1620,1621],{},"If consistently depleted, migrate to D\u002FF-series",[25,1623,1624],{},"Consider B-series with higher baseline (e.g., B4ms → B8ms)",[14,1626,1628],{"id":1627},"security-considerations","Security Considerations",[55,1630,1632],{"id":1631},"vm-configuration","VM Configuration",[10,1634,1635],{},"Jetscale recommendations preserve:",[22,1637,1638,1641,1644,1647,1650,1653],{},[25,1639,1640],{},"Virtual network and subnet associations",[25,1642,1643],{},"Network Security Groups (NSGs)",[25,1645,1646],{},"Managed identities",[25,1648,1649],{},"Key vault references",[25,1651,1652],{},"Disk encryption settings",[25,1654,1655],{},"Boot diagnostics configuration",[55,1657,1659],{"id":1658},"image-compatibility","Image Compatibility",[22,1661,1662,1665,1668,1671],{},[25,1663,1664],{},"Uses same OS image\u002FSKU as original VM",[25,1666,1667],{},"Preserves custom images and configurations",[25,1669,1670],{},"Maintains OS disk and data disk attachments",[25,1672,1673],{},"No changes to authentication methods",[55,1675,1677],{"id":1676},"lifecycle-management","Lifecycle Management",[10,1679,1680],{},"Use Terraform lifecycle rules:",[68,1682,1684],{"className":614,"code":1683,"language":616,"meta":77,"style":77},"lifecycle {\n  create_before_destroy = true\n  prevent_destroy       = var.is_production\n}\n",[75,1685,1686,1691,1696,1701],{"__ignoreMap":77},[620,1687,1688],{"class":622,"line":623},[620,1689,1690],{},"lifecycle {\n",[620,1692,1693],{"class":622,"line":629},[620,1694,1695],{},"  create_before_destroy = true\n",[620,1697,1698],{"class":622,"line":635},[620,1699,1700],{},"  prevent_destroy       = var.is_production\n",[620,1702,1703],{"class":622,"line":641},[620,1704,952],{},[14,1706,1708],{"id":1707},"limitations","Limitations",[10,1710,1711],{},[28,1712,1713],{},"Not Currently Supported:",[22,1715,1716,1719,1722,1725,1728,1731],{},[25,1717,1718],{},"Virtual Machine Scale Sets (VMSS) optimization",[25,1720,1721],{},"Spot VM recommendations",[25,1723,1724],{},"Reserved Instance purchase recommendations",[25,1726,1727],{},"Auto-shutdown scheduling",[25,1729,1730],{},"AKS node pool optimization",[25,1732,1733],{},"Multi-VM orchestration",[10,1735,1736,1739],{},[28,1737,1738],{},"Roadmap:","\nThese features are planned for future releases. Currently, Jetscale focuses on standalone Azure VM optimization where immediate cost savings can be achieved through right-sizing and migration.",[14,1741,1743],{"id":1742},"api-integration","API Integration",[10,1745,1746],{},"Jetscale provides API access for programmatic optimization:",[68,1748,1752],{"className":1749,"code":1750,"language":1751,"meta":77,"style":77},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# List Azure VM recommendations\nGET \u002Fapi\u002Fv1\u002Frecommendations?resource_type=azure-vm\n\n# Get specific recommendation details\nGET \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\n\n# Approve recommendation (generates Terraform)\nPOST \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\u002Fapprove\n\n# Retrieve generated Terraform\nGET \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\u002Fterraform\n","bash",[75,1753,1754,1760,1770,1774,1779,1786,1790,1795,1803,1807,1812],{"__ignoreMap":77},[620,1755,1756],{"class":622,"line":623},[620,1757,1759],{"class":1758},"sHwdD","# List Azure VM recommendations\n",[620,1761,1762,1766],{"class":622,"line":629},[620,1763,1765],{"class":1764},"sBMFI","GET",[620,1767,1769],{"class":1768},"sfazB"," \u002Fapi\u002Fv1\u002Frecommendations?resource_type=azure-vm\n",[620,1771,1772],{"class":622,"line":635},[620,1773,645],{"emptyLinePlaceholder":644},[620,1775,1776],{"class":622,"line":641},[620,1777,1778],{"class":1758},"# Get specific recommendation details\n",[620,1780,1781,1783],{"class":622,"line":648},[620,1782,1765],{"class":1764},[620,1784,1785],{"class":1768}," \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\n",[620,1787,1788],{"class":622,"line":654},[620,1789,645],{"emptyLinePlaceholder":644},[620,1791,1792],{"class":622,"line":660},[620,1793,1794],{"class":1758},"# Approve recommendation (generates Terraform)\n",[620,1796,1797,1800],{"class":622,"line":666},[620,1798,1799],{"class":1764},"POST",[620,1801,1802],{"class":1768}," \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\u002Fapprove\n",[620,1804,1805],{"class":622,"line":672},[620,1806,645],{"emptyLinePlaceholder":644},[620,1808,1809],{"class":622,"line":677},[620,1810,1811],{"class":1758},"# Retrieve generated Terraform\n",[620,1813,1814,1816],{"class":622,"line":683},[620,1815,1765],{"class":1764},[620,1817,1818],{"class":1768}," \u002Fapi\u002Fv1\u002Frecommendations\u002F{recommendation_id}\u002Fterraform\n",[10,1820,1821,1822,1827],{},"See our ",[1823,1824,1826],"a",{"href":1825},"\u002Fdocs\u002Fapi-reference","API Documentation"," for complete reference.",[14,1829,1831],{"id":1830},"support","Support",[10,1833,1834],{},"Need help with Azure VM optimization?",[22,1836,1837,1847,1856],{},[25,1838,1839,1842,1843],{},[28,1840,1841],{},"Email",": ",[1823,1844,1846],{"href":1845},"mailto:support@jetscale.ai","support@jetscale.ai",[25,1848,1849,1842,1852],{},[28,1850,1851],{},"Documentation",[1823,1853,1855],{"href":1854},"\u002Fdocs\u002Ffaq","FAQ",[25,1857,1858,1842,1861],{},[28,1859,1860],{},"GitHub Issues",[1823,1862,1866],{"href":1863,"rel":1864},"https:\u002F\u002Fgithub.com\u002FJetscale-ai\u002Fjetscale-docs\u002Fissues",[1865],"nofollow","Report a problem",[1868,1869],"hr",{},[10,1871,1872],{},[28,1873,1874],{},"Related Documentation:",[22,1876,1877,1883],{},[25,1878,1879],{},[1823,1880,1882],{"href":1881},"\u002Fdocs\u002Fservices\u002Fazure-sql","Azure SQL Optimization",[25,1884,1885],{},[1823,1886,1888],{"href":1887},"\u002Fdocs\u002Fservices\u002Fec2","EC2 Optimization",[1890,1891,1892],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":77,"searchDepth":629,"depth":629,"links":1894},[1895,1896,1899,1907,1913,1918,1924,1928,1933,1934,1935],{"id":16,"depth":629,"text":17},{"id":52,"depth":629,"text":53,"children":1897},[1898],{"id":57,"depth":635,"text":58},{"id":117,"depth":629,"text":118,"children":1900},[1901,1902,1903,1904,1905,1906],{"id":124,"depth":635,"text":125},{"id":168,"depth":635,"text":169},{"id":192,"depth":635,"text":193},{"id":236,"depth":635,"text":237},{"id":260,"depth":635,"text":261},{"id":281,"depth":635,"text":282},{"id":330,"depth":629,"text":331,"children":1908},[1909,1910,1911,1912],{"id":334,"depth":635,"text":335},{"id":442,"depth":635,"text":443},{"id":537,"depth":635,"text":538},{"id":602,"depth":635,"text":603},{"id":1206,"depth":629,"text":1207,"children":1914},[1915,1916,1917],{"id":1210,"depth":635,"text":1211},{"id":1257,"depth":635,"text":1258},{"id":1302,"depth":635,"text":1303},{"id":1323,"depth":629,"text":1324,"children":1919},[1920,1921,1922,1923],{"id":1327,"depth":635,"text":1328},{"id":1363,"depth":635,"text":1364},{"id":1397,"depth":635,"text":1398},{"id":1431,"depth":635,"text":1432},{"id":1468,"depth":629,"text":1469,"children":1925},[1926,1927],{"id":1472,"depth":635,"text":1473},{"id":1548,"depth":635,"text":1549},{"id":1627,"depth":629,"text":1628,"children":1929},[1930,1931,1932],{"id":1631,"depth":635,"text":1632},{"id":1658,"depth":635,"text":1659},{"id":1676,"depth":635,"text":1677},{"id":1707,"depth":629,"text":1708},{"id":1742,"depth":629,"text":1743},{"id":1830,"depth":629,"text":1831},[1937,1938,1939],"optimization-methodology","provider-service-support","savings-methodology","Jetscale provides AI-powered cost optimization for Azure Virtual Machines. Our specialized agents analyze your compute workloads to identify right-sizing opportunities, VM...","md","en",{},[],"Cloud Optimization","\u002Fdocs\u002Fservices\u002Fazure-vm","legacy-import",{"title":5,"description":1940},[],"docs\u002F5.services\u002F8.azure-vm","high","services\u002Fazure-vm","Eiyiy6f3RHBS28BJxWVcJEfVAEP0_8VR07FVjaROeNQ",[1955],{"title":1956,"path":1957,"stem":1958,"children":1959},"Docs","\u002Fdocs","docs",[1960,1963,1967,1971,1975,1979,2001,2005,2036,2040,2043],{"title":1961,"path":1957,"stem":1962},"Jetscale Documentation","docs\u002Findex",{"title":1964,"path":1965,"stem":1966},"Getting Started with Jetscale","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",{"title":1968,"path":1969,"stem":1970},"AWS Setup Guide","\u002Fdocs\u002Faws-setup","docs\u002F2.aws-setup",{"title":1972,"path":1973,"stem":1974},"Azure Setup Guide","\u002Fdocs\u002Fazure-setup","docs\u002F3.azure-setup",{"title":1976,"path":1977,"stem":1978},"How Jetscale Works","\u002Fdocs\u002Fhow-it-works","docs\u002F4.how-it-works",{"title":1980,"path":1981,"stem":1982,"children":1983},"Integrations","\u002Fdocs\u002Fintegrations","docs\u002F4.integrations\u002Findex",[1984,1985,1989,1993,1997],{"title":1980,"path":1981,"stem":1982},{"title":1986,"path":1987,"stem":1988},"GitHub Integration","\u002Fdocs\u002Fintegrations\u002Fgithub","docs\u002F4.integrations\u002F1.github",{"title":1990,"path":1991,"stem":1992},"Jira Integration","\u002Fdocs\u002Fintegrations\u002Fjira","docs\u002F4.integrations\u002F2.jira",{"title":1994,"path":1995,"stem":1996},"Slack Integration","\u002Fdocs\u002Fintegrations\u002Fslack","docs\u002F4.integrations\u002F3.slack",{"title":1998,"path":1999,"stem":2000},"Bitbucket Integration","\u002Fdocs\u002Fintegrations\u002Fbitbucket","docs\u002F4.integrations\u002F4.bitbucket",{"title":2002,"path":2003,"stem":2004},"AI-Powered Analysis","\u002Fdocs\u002Fai-analysis","docs\u002F5.ai-analysis",{"title":2006,"path":2007,"stem":2008,"children":2009},"Supported Services","\u002Fdocs\u002Fservices","docs\u002F5.services\u002Findex",[2010,2011,2015,2017,2021,2025,2029,2033,2035],{"title":2006,"path":2007,"stem":2008},{"title":2012,"path":2013,"stem":2014},"EBS Optimization","\u002Fdocs\u002Fservices\u002Febs","docs\u002F5.services\u002F1.ebs",{"title":1888,"path":1887,"stem":2016},"docs\u002F5.services\u002F2.ec2",{"title":2018,"path":2019,"stem":2020},"EKS Optimization","\u002Fdocs\u002Fservices\u002Feks","docs\u002F5.services\u002F3.eks",{"title":2022,"path":2023,"stem":2024},"ElastiCache Optimization","\u002Fdocs\u002Fservices\u002Felasticache","docs\u002F5.services\u002F4.elasticache",{"title":2026,"path":2027,"stem":2028},"RDS Optimization","\u002Fdocs\u002Fservices\u002Frds","docs\u002F5.services\u002F5.rds",{"title":2030,"path":2031,"stem":2032},"S3 Optimization","\u002Fdocs\u002Fservices\u002Fs3","docs\u002F5.services\u002F6.s3",{"title":1882,"path":1881,"stem":2034},"docs\u002F5.services\u002F7.azure-sql",{"title":5,"path":1946,"stem":1950},{"title":2037,"path":2038,"stem":2039},"Recommendation Workflow","\u002Fdocs\u002Frecommendation-workflow","docs\u002F6.recommendation-workflow",{"title":2041,"path":1825,"stem":2042},"API Reference","docs\u002F7.api-reference",{"title":1855,"path":1854,"stem":2044},"docs\u002F8.faq",[2046,2048],{"title":1882,"path":1881,"stem":2034,"description":2047,"children":-1},"Jetscale provides AI-powered cost optimization for Azure SQL Database, including single databases, elastic pools, and Azure SQL Managed Instance. Our specialized agents analyze...",{"title":2037,"path":2038,"stem":2039,"description":2049,"children":-1},"Complete guide to Jetscale's end-to-end cost optimization process",1788204004671]