rel:: [[Operating Systems MOC|Operating Systems]] [source archive link](x-devonthink-item://AAF15563-9DED-4F09-A802-048308784AC6) # USE Method **U**tilization **S**aturation **E**rrors > The Utilization Saturation and Errors (USE) Method is a methodology for analyzing the performance of any system. It directs the construction of a checklist, which for server analysis can be used for quickly identifying resource bottlenecks or errors. It begins by posing questions, and then seeks answers, instead of beginning with given metrics (partial answers) and trying to work backwards. The USE Method can be summarized as: > For every resource, check utilization, saturation, and errors. Terminology definitions: - **resource**: all physical server functional components (CPUs, disks, busses, ...) - **utilization**: the average time that the resource was busy servicing work - **saturation**: the degree to which the resource has extra work which it can't service, often queued - **errors**: the count of error events ## Resources > Here is a generic list for servers: - **CPUs**: sockets, cores, hardware threads (virtual CPUs) - **Memory**: capacity - **Network interfaces** - **Storage devices**: I/O, capacity - **Controllers**: storage, network cards - **Interconnects**: CPUs, memory, I/O > Some components are two types of resources: storage devices are a service request resource (I/O) and also a capacity resource (population). Both types can become a system bottleneck. Request resources can be defined as _queueing systems_, which can queue and then service requests. > Some physical components have been left out, such as hardware caches (eg, MMU TLB/TSB, CPU). The USE Method is most effective for resources that suffer performance degradation under high utilization or saturation, leading to a bottleneck. Caches _improve_ performance under high utilization. Cache hit rates and other performance attributes can be checked after the USE Method - after systemic bottlenecks have been ruled out. If you are unsure whether to include a resource, include it, then see how well the metrics work. ## Platforms ### [[FreeBSD]] https://www.brendangregg.com/USEmethod/use-freebsd.html ### [[Linux]] https://www.brendangregg.com/USEmethod/use-linux.html ### [[MacOS]] https://www.brendangregg.com/USEmethod/use-macosx.html