|
| 1 | +:orphan: |
| 2 | + |
| 3 | +.. _aopt-glossary: |
| 4 | + |
| 5 | +.. include:: /private-preview/aopt/toc.rst |
| 6 | + :start-after: :orphan: |
| 7 | + |
| 8 | +********************************************************** |
| 9 | +Glossary |
| 10 | +********************************************************** |
| 11 | + |
| 12 | +.. _aopt-glossary-confidence-level: |
| 13 | + |
| 14 | +Confidence level |
| 15 | +========================================================== |
| 16 | + |
| 17 | +The ratio of how many days of information is available for a workload compared to how many days worth of information Application Optimization needs in order to analyze it (14 contiguous days). If your data spans 14 contiguous days, the confidence will be high. If your data spans fewer than 14 days or since the initial deployment, the confidence level will be lower. For example, if you've made a configuration change such as a change to CPU or memory limits, an addition of a container, and so on. Definition of confidence levels: |
| 18 | + |
| 19 | +* :guilabel:`High`: Greater than 90% of needed information is available. |
| 20 | + |
| 21 | +* :guilabel:`Medium`: 50-89% of needed information is available. |
| 22 | + |
| 23 | +* :guilabel:`Low`: Only 5-49% of needed information is available. |
| 24 | + |
| 25 | +* :guilabel:`Unknown`: Less than 5% of needed information is available. |
| 26 | + |
| 27 | + |
| 28 | +Application Optimization calculates an overall confidence level by taking the lowest confidence level across all containers, where each container's confidence level is an average of the separate confidence levels for CPU and memory. |
| 29 | + |
| 30 | + |
| 31 | +Why the confidence level matters |
| 32 | +---------------------------------------------------------- |
| 33 | + |
| 34 | +It's a good idea to match the confidence level to your workload's importance or criticality. In other words, if your workload is a test or you just need to preview the recommendations, a confidence level of :guilabel:`Low` is okay. But if your workload is a production or business critical workload, it's best to wait for a confidence level of :guilabel:`High` before applying the recommendations. |
| 35 | + |
| 36 | + |
| 37 | +.. _aopt-glossary-efficiency: |
| 38 | + |
| 39 | +Efficiency |
| 40 | +========================================================== |
| 41 | + |
| 42 | +The balance between over-provisioning and under-provisioning to optimize resource utilization without compromising performance or stability. Highly efficient workloads use resources in a way that aligns closely with their actual consumption, reducing waste and maximizing your cluster's capacity to run other workloads. |
| 43 | + |
| 44 | +Application Optimization is a powerful tool for achieving and maintaining efficiency. It calculates efficiency as the average of the pod-wide usage of a resource's ``request`` setting, capped at 100%. Its calculation only includes metrics within the analysis window, which is the lesser of 14 days and the time since the last resource change (or the initial deployment). Note that rather than finding the utilization (usage over requests) of each container within a pod, all of the containers' usage and requests are added up first. The averages for each CPU and memory ``request`` setting are then weight-averaged based on the assumed resource cost weights. |
| 45 | + |
| 46 | +Best practices call for resource utilization in the 60-80% range. Having efficiency above 70-80% presents resource starvation risks. |
| 47 | + |
| 48 | +When values are unset for a particular resource, this tool assumes those ``request`` settings to be at usage (in other words, 100% efficient) to more accurately weigh multi-container rates. |
| 49 | + |
| 50 | +When the main container has an unset resource, this tool considers the efficiency rate to be undefined. |
| 51 | + |
| 52 | + |
| 53 | +.. _aopt-glossary-resource-footprint: |
| 54 | + |
| 55 | +Resource Footprint |
| 56 | +========================================================== |
| 57 | + |
| 58 | +A workload's resource footprint is the sum of its pods' ``request`` settings for that resource or its average usage if it exceeds its ``request`` settings. If the ``request`` value is not set, the footprint represents the sum of actual usage instead. This tile displays the sum of all resource footprints of all the pods of all your workloads. |
| 59 | + |
| 60 | + |
| 61 | +.. _aopt-glossary-starvation-risk: |
| 62 | + |
| 63 | +Starvation risk |
| 64 | +========================================================== |
| 65 | + |
| 66 | +A workload's average risk of running out of CPU or memory: |
| 67 | + |
| 68 | +* :guilabel:`High`: The workload has tried to use more resources than were available, so its performance and reliability have likely been impacted. Application Optimization marks any container in which usage is greater than or equal to 95% of its ``limit`` settings as :guilabel:`High`. |
| 69 | + |
| 70 | +* :guilabel:`Medium`: The workload has used more than its allocated resources (``request`` settings). While this may not have an impact on its performance and reliability due to Kubernetes bursting into additional resources, future occurrences of overusage may have an impact, since extra resources are not guaranteed to exist. |
| 71 | + |
| 72 | + Application Optimization sets :guilabel:`Starvation risk` to :guilabel:`Medium` for any container in which either of these is true: |
| 73 | + |
| 74 | + * At least one resource (CPU or memory) of is undefined. |
| 75 | + |
| 76 | + * All ``request`` settings are defined and actual usage of at least one resource of exceeds its ``request`` setting for any time slot. |
| 77 | + |
| 78 | +* :guilabel:`Low`: The workload hasn't exceeded its allocated resources but doesn't have enough headroom to absorb spikes or delays in scale-out when traffic increases. Application Optimization marks any container in which, for either CPU or memory, the recommendation is greater than the baseline value. For example, the usage is greater than target utilization (0.85). |
| 79 | + |
| 80 | +* :guilabel:`Minimal`: None of the above conditions are detected. In other words, all containers have ``request`` settings for both CPU and memory, and neither of these resources has had usage exceeding its target utilization. |
| 81 | + |
0 commit comments