Table of Contents
Systems Performance Glossary
Return to Glossaries, Systems Performance, 2nd Edition, Performance Bibliography, Systems Performance, Performance DevOps, IT Bibliography, DevOps Bibliography
“ (SysPrfBGrg 2021)
A
- adaptive mutex - “A mutex (mutual exclusion) synchronization lock type. See Chapter 5, Applications, Section 5.2.5, Concurrency and Parallelism.” (SysPrfBGrg 2021)
- associative array - “A data type for programming languages where values are referenced by an arbitrary key or multiple keys.” (SysPrfBGrg 2021)
- AT&T - “The American Telephone and Telegraph Company, which included Bell Laboratories, where Unix was developed.” (SysPrfBGrg 2021)
B
- back end - “Refers to data storage and infrastructure components. A web server is back-end software. See front end.” (SysPrfBGrg 2021)
- BCC - “BPF compiler collection. BCC is a project that includes a BPF compiler framework, as well as many BPF performance tools. See Chapter 15.” (SysPrfBGrg 2021)
- benchmark - “In computing, a benchmark is a tool that performs a workload experiment and measures its performance: the benchmark result. These are commonly used for evaluating the performance of different options.” (SysPrfBGrg 2021)
- BIOS - “Basic Input/Output System: firmware used to initialize computer hardware and manage the booting process.” (SysPrfBGrg 2021)
- BPF - “Berkeley Packet Filter: a lightweight in-kernel technology from 1992 created to improve the performance of packet filtering. Since 2014 it has been extended to become a general-purpose execution environment (see eBPF).” (SysPrfBGrg 2021)
C
- C - The C programming language.
- cache warmth - “See Hot, Cold, and Warm Caches in Section 2.3.14, Caching, in Chapter 2, Methodologies.” (SysPrfBGrg 2021)
- client - “A consumer of a network service, referring to either the client host or the client application.” (SysPrfBGrg 2021)
- concurrency - See Section 5.2.5, Concurrency and Parallelism, in Chapter 5, Applications.“ (SysPrfBGrg 2021)
- core - “An execution pipeline on a processor. These may be exposed on an OS as single CPUs, or via hyperthreads as multiple CPUs.” (SysPrfBGrg 2021)
- CPU - ”Central processing unit. This term refers to the set of functional units that execute instructions, including the registers and arithmetic logic unit (ALU). It is now often used to refer to either the processor or a virtual CPU.“ (SysPrfBGrg 2021)
- CPU cross call - “A call by a CPU to request work from others on a multi-CPU system. Cross calls may be made for system-wide events such as CPU cache coherency calls. See Chapter 6, CPUs. Linux terms these “SMP calls.”” (SysPrfBGrg 2021)
- CPU cycle - “A unit of time based on the clock rate of the processor: for 2 GHz, each cycle is 0.5 ns. A cycle itself is an electrical signal, the rising or falling of voltage, used to trigger digital logic.” (SysPrfBGrg 2021)
D
- debuginfo file - “A symbol and debug information file, used by debuggers and profilers.” (SysPrfBGrg 2021)
- disk controller - “A component that manages directly attached disks, making them accessible to the system, either directly or mapped as virtual disks. Disk controllers may be built into the system main board, included as expansion cards, or built into storage arrays. They support one or more storage interface types (e.g., SCSI, SATA, SAS) and are also commonly called host bus adaptors (HBAs), along with the interface type, for example, SAS HBA.” (SysPrfBGrg 2021)
- DRAM - “Dynamic random-access memory, a type of volatile memory in common use as main memory.” (SysPrfBGrg 2021)
- dynamic instrumentation - “Dynamic instrumentation or dynamic tracing is a technology that can instrument any software event, including function calls and returns, by live modification of instruction text and the insertion of temporary tracing instructions.” (SysPrfBGrg 2021)
- dynamic tracing - “This can refer to the software that implements dynamic instrumentation.” (SysPrfBGrg 2021)
E
- eBPF - “Extended BPF (see BPF). The eBPF abbreviation originally described the extended BPF from 2014, which updated the register size, instruction set, added map storage, and limited kernel calls. By 2015, it was decided to call eBPF just BPF.” (SysPrfBGrg 2021)
- ELF - “Executable and Linkable Format: a common file format for executable programs.” (SysPrfBGrg 2021)
- errno - “A variable containing the last error as a number following a standard (POSIX.1-2001).” (SysPrfBGrg 2021)
- Ethernet - “A set of standards for networking at the physical and data link layers.” (SysPrfBGrg 2021)
- expander card - “A physical device (card) connected to the system, usually to provide an additional I/O controller.” (SysPrfBGrg 2021)
F
- file descriptor - “An identifier for a program to use in referencing an open file.” (SysPrfBGrg 2021)
- flame graph - “A visualization for a set of stack traces. See Chapter 2, Methodologies.” (SysPrfBGrg 2021)
- FPGA - “Field-programmable gate array. A reprogrammable integrated circuit used in computing to typically accelerate a specific operation.” (SysPrfBGrg 2021)
- frame - “A message at the data link layer of the OSI networking model (see Section 10.2.3, Protocol Stack).” (SysPrfBGrg 2021)
- front end - “Refers to end-user interface and presentation software. A web application is front-end software. See back end.” (SysPrfBGrg 2021)
G
- GPU - Graphics processing unit. These can be used for other workloads as well, such as machine learning.“ (SysPrfBGrg 2021)
H
- HDD - Hard disk drive, a rotational magnetic storage device. See Chapter 9, Disks.” (SysPrfBGrg 2021)
- hit ratio - “Often used to describe cache performance: the ratio of cache hits versus hits plus misses, usually expressed as a percentage. Higher is better.” (SysPrfBGrg 2021)
- hyperthread - ”Intel’s implementation of SMT. This is a technology for scaling CPUs, allowing the OS to create multiple virtual CPUs for one core and schedule work on them, which the processor attempt to process in parallel.“ (SysPrfBGrg 2021)
I
- ICMP - ”Internet Control Message Protocol. Used by ping(1) (ICMP echo request/reply).“ (SysPrfBGrg 2021)
- I/O - Input/output.
- IO Visor - “The Linux Foundation project that hosts the bcc and bpftrace repositories on GitHub, and facilitates collaboration among BPF developers at different companies.” (SysPrfBGrg 2021)
- IP - ”Internet Protocol. Main versions are IPv4 and IPv6. See Chapter 10, Network.“ (SysPrfBGrg 2021)
- IPC - “Either means: instructions per cycle, a low-level CPU performance metric, or inter-process communication, a means for processes to exchange data. Sockets]] are an inter-process communication mechanism.” (SysPrfBGrg 2021)
K
- kernel - “The core program on a system that runs in privileged mode to manage resources and user-level processes.” (SysPrfBGrg 2021)
L
- latency - Time spent waiting. In computing performance it is often used to describe resource I/O time. Latency is important for performance analysis, because it is often the most effective measure of a performance issue. Where exactly it is measured can be ambiguous without further qualifiers. For example, “disk latency” could mean time spent waiting on a disk driver queue only or, from an application, it could mean the entire time waiting for disk I/O to complete, both queued and service time. Latency is limited by a lower bound, bandwidth by an upper bound.” (SysPrfBGrg 2021)
- LRU - Least recently used. See Section 2.3.14, Caching, in Chapter 2, Methodologies.“ (SysPrfBGrg 2021)
M
- main board - “The circuit board that houses the processors and system interconnect; also called the system board.” (SysPrfBGrg 2021)
- main memory - “The primary memory storage of a system, usually implemented as DRAM.” (SysPrfBGrg 2021)
- major fault - “A memory access fault that was serviced from storage devices (disks). See Chapter 3, Operating Systems.” (SysPrfBGrg 2021)
- malloc - ”Memory allocate. This usually refers to the function performing allocation.“ (SysPrfBGrg 2021)
- Mbytes - “Megabytes. The International System of Units (SI) defines a megabyte as 1000000 bytes, but in computing a megabyte is typically 1048576 bytes (which SI terms a mebibyte). Throughout this book, tools that report Mbytes are usually using the definition of 1048576 (220) bytes.” (SysPrfBGrg 2021)
- minor fault - “A memory access fault that was serviced from main memory. See Chapter 3, Operating Systems.” (SysPrfBGrg 2021)
- MMU - ”Memory management unit. This is responsible for presenting memory to a CPU and for performing virtual-to-physical address translation.“ (SysPrfBGrg 2021)
- mutex - “A mutual exclusion lock. They can become a source of performance bottlenecks, and are often investigated for performance problems. See Chapter 5, Applications.” (SysPrfBGrg 2021)
N
- NVMe - ”Non-Volatile Memory express: a PCIe bus specification for storage devices.“ (SysPrfBGrg 2021)
O
- operation rate Operations per interval (e.g., operations per second), which may include non-I/O operations.“ (SysPrfBGrg 2021)
- OS Operating System. The collection of software including the kernel for managing resources and user-level processes.” (SysPrfBGrg 2021)
P
- packet A network message at the network layer of the OSI networking model (see Section 10.2.3).“ (SysPrfBGrg 2021)
- pagefault A system trap that occurs when a program references a memory location where the virtual memory is not currently mapped to a physical backing page. This is a normal consequence of an on-[[demand allocation memory model.“ (SysPrfBGrg 2021)
- pagein/pageout Functions performed by an operating system (kernel) to move chunks of memory (pages) to and from external storage devices.” (SysPrfBGrg 2021)
- parallel See Section 5.2.5, Concurrency and Parallelism, in Chapter 5, Applications.“ (SysPrfBGrg 2021)
- PCIe Peripheral Component Interconnect Express: a bus standard commonly used for storage and network controllers.” (SysPrfBGrg 2021)
- PDP Programmed Data Processor, a mini[[computer series made by Digital Equipment Corporation (DEC).“ (SysPrfBGrg 2021)
- PEBS Precise event-based sampling (aka processor event-based sampling), an Intel processor technology for use with PMCs to provide more precise recording of CPU state during events.” (SysPrfBGrg 2021)
- Performance engineer A technical staff member who works primarily on computer performance: planning, evaluations, analysis, and improvements. See Chapter 1, Introduction, Section 1.3, Activities.“ (SysPrfBGrg 2021)
- PID Process identifier. The operating system unique numeric identifier for a process.” (SysPrfBGrg 2021)
- PMCs Performance Monitoring Counters: special hardware registers on the processor that can be programmed to instrument low-level CPU events: cycles, stall cycles, instructions, memory loads/stores, etc.“ (SysPrfBGrg 2021)
- POSIX Portable Operating System Interface, a family of related standards managed by the IEEE to define a Unix API. This includes a file system interface as used by applications, provided via system calls or system libraries built upon system calls.” (SysPrfBGrg 2021)
- production A term used in technology to describe the workload of real customer requests, and the environment that processes it. Many companies also have a “test” environment with synthetic workloads for testing things before production deployment.“ (SysPrfBGrg 2021)
- profiling A technique to collect data that characterizes the performance of a target. A common profiling technique is timed sampling (see sampling).” (SysPrfBGrg 2021)
- PSI Linux pressure stall information, used for identifying performance issues caused by resources.“ (SysPrfBGrg 2021)
R
- registers Small storage locations on a CPU, used directly from CPU instructions for data processing.” (SysPrfBGrg 2021)
- RFC Request For Comments: a public document by the Internet Engineering Task Force (IETF) to share networking standards and best practices. RFCs are used to define networking protocols: RFC 793 defines the TCP protocol.” (SysPrfBGrg 2021)
S
- sampling - “An observability method for understanding a target by taking a subset of measurements: a sample.” (SysPrfBGrg 2021)
- script - “In computing, an executable program, usually short and in a high-level language.” (SysPrfBGrg 2021)
- SCSI - “Small Computer System Interface. An interface standard for storage devices.” (SysPrfBGrg 2021)
- segment - “A message at the transport layer of the OSI networking model (see Section 10.2.3, Protocol Stack).” (SysPrfBGrg 2021)
- SMP - “Symmetric multiprocessing, a multiprocessor architecture where multiple similar CPUs share the same main memory.” (SysPrfBGrg 2021)
- SMT - “Simultaneous multithreading, a processor feature to run multiple thread]]s on cores. See hyperthread.” (SysPrfBGrg 2021)
- socket - “A software abstraction representing a network endpoint for communication.” (SysPrfBGrg 2021)
- Solaris - “A Unix-derived operating system originally developed by Sun Microsystems, it was known for scalability and reliability, and was popular in enterprise environments. Since the acquisition of Sun by Oracle Corporation, it has been renamed Oracle Solaris.” (SysPrfBGrg 2021)
- SONET - “Synchronous optical networking, a physical layer protocol for optical fibers.” (SysPrfBGrg 2021)
- SRE - “Site reliability engineer: a technical staff member focused]] on infrastructure and reliability. SREs work on performance as part of incident response, under short time constraints.” (SysPrfBGrg 2021)
- SSD - “Solid-state drive, a storage device typically based on flash memory]]. See Chapter 9, Disks.” (SysPrfBGrg 2021)
- stack - “In the context of observability tools, stack is usually short for “stack trace.”” (SysPrfBGrg 2021)
- stack frame - “A data structure containing function state information, including the return address and function arguments.” (SysPrfBGrg 2021)
- stack trace - “A call stack composed of multiple stack frames spanning the code path ancestry. These are often inspected as part of performance analysis, particularly CPU profiling.” (SysPrfBGrg 2021)
- static instrumentation/tracing - “Instrumentation of software with precompiled probe points. See Chapter 4, Observability Tools.” (SysPrfBGrg 2021)
- storage array - A collection of disks housed in an enclosure, which can then be attached to a system. Storage arrays typically provide various features to improve disk reliability and performance.“ (SysPrfBGrg 2021)
- system call - “The interface for processes to request privileged actions from the kernel. See Chapter 3, Operating Systems.” (SysPrfBGrg 2021)
T
- task - A Linux runnable entity, which may be a process, a thread from a multithreaded process, or a kernel thread. See Chapter 3, Operating Systems.” (SysPrfBGrg 2021)
- TCP - Transmission Control Protocol. Originally defined in RFC 793. See Chapter 10, Network.“ (SysPrfBGrg 2021)
- thread - A software abstraction for an instance of program execution, which can be scheduled to run on a CPU. The kernel has multiple thread]]s, and a process contains one or more. See Chapter 3, Operating Systems.“ (SysPrfBGrg 2021)
- throughput - For network communication devices, throughput commonly refers to the data [[transfer rate in either bits per second or bytes per second. Throughput may also refer to I/O completions per second (IOPS) when used with statistical analysis, especially for targets of study.” (SysPrfBGrg 2021)
- TLB - Translation Lookaside Buffer. A cache for memory translation on virtual memory systems, used by the MMU (see MMU).“ (SysPrfBGrg 2021)
- TPU - Tensor processing unit. An AI accelerator ASIC for machine learning developed by Google, and named after TensorFlow (a software platform for machine learning).“ (SysPrfBGrg 2021)
U
- UDP - User Datagram Protocol. Originally defined in RFC 768. See Chapter 10, Network.“ (SysPrfBGrg 2021)
- us Microseconds. This should be abbreviated as ìs; however, you will often see it as “us,” especially in the output of ASCII-based performance tools. (Note that vmstat(8)’s output, included many times in this book, includes a us column, short for user time.)“ (SysPrfBGrg 2021)
- USDT - User-land Statically Defined Tracing. This involves the placement of static instrumentation in application code by the programmer, at locations to provide useful probes.“ (SysPrfBGrg 2021)
- user-land - This refers to user-level software and files, including executable programs in /usr/bin, usr/lib, usr/etc.” (SysPrfBGrg 2021)
- user-level - The processor privilege mode that user-land execution uses. This is a lower privilege level than the kernel, and one that denies direct access to resources, forcing user-level software to request access to them via the kernel.“ (SysPrfBGrg 2021)
V
- vCPU - A virtual CPU. Modern processors can expose multiple virtual CPUs per core (e.g., Intel Hyper-Threading).“ (SysPrfBGrg 2021)
- VFS - Virtual file system. An abstraction used by the kernel to support different file system types.” (SysPrfBGrg 2021)
- virtual memory - An abstraction of main memory that supports multitasking and over-subscription.“ (SysPrfBGrg 2021)
W
X
Z
Fair Use Sources
Performance: Systems performance, Systems performance bibliography, Systems Performance Outline: (Systems Performance Introduction, Systems Performance Methodologies, Systems Performance Operating Systems, Systems Performance Observability Tools, Systems Performance Applications, Systems Performance CPUs, Systems Performance Memory, Systems Performance File Systems, Systems Performance Disks, Systems Performance Network, Systems Performance Cloud Computing, Systems Performance Benchmarking, Systems Performance perf, Systems Performance Ftrace, Systems Performance BPF, Systems Performance Case Study), Accuracy, Algorithmic efficiency (Big O notation), Algorithm performance, Amdahl's Law, Android performance, Application performance engineering, Async programming, Bandwidth, Bandwidth utilization, bcc, Benchmark (SPECint and SPECfp), BPF, bpftrace, Performance bottleneck (“Hotspots”), Browser performance, C performance, C++ performance, C# performance, Cache hit, Cache performance, Capacity planning, Channel capacity, Clock rate, Clojure performance, Compiler performance (Just-in-time (JIT) compilation - Ahead-of-time compilation (AOT), Compile-time, Optimizing compiler), Compression ratio, Computer performance, Concurrency, Concurrent programming, Concurrent testing, Container performance, CPU cache, CPU cooling, CPU cycle, CPU overclocking (CPU boosting, CPU multiplier), CPU performance, CPU speed, CPU throttling (Dynamic frequency scaling - Dynamic voltage scaling - Automatic underclocking), CPU time, CPU load - CPU usage - CPU utilization, Cycles per second (Hz), CUDA (Nvidia), Data transmission time, Database performance (ACID-CAP theorem, Database sharding, Cassandra performance, Kafka performance, IBM Db2 performance, MongoDB performance, MySQL performance, Oracle Database performance, PostgreSQL performance, Spark performance, SQL Server performance), Disk I/O, Disk latency, Disk performance, Disk speed, Disk usage - Disk utilization, Distributed computing performance (Fallacies of distributed computing), DNS performance, Efficiency - Relative efficiency, Encryption performance, Energy efficiency, Environmental impact, Fast, Filesystem performance, Fortran performance, FPGA, Gbps, Global Interpreter Lock - GIL, Golang performance, GPU - GPGPU, GPU performance, Hardware performance, Hardware performance testing, Hardware stress test, Haskell performance, High availability (HA), Hit ratio, IOPS - I/O operations per second, IPC - Instructions per cycle, IPS - Instructions per second, Java performance (Java data structure performance - Java ArrayList is ALWAYS faster than LinkedList, Apache JMeter), JavaScript performance (V8 JavaScript engine performance, Node.js performance - Deno performance), JVM performance (GraalVM, HotSpot), Kubernetes performance, Kotlin performance, Lag (video games) (Frame rate - Frames per second (FPS)), Lagometer, Latency, Lazy evaluation, Linux performance, Load balancing, Load testing, Logging, macOS performance, Mainframe performance, Mbps, Memory footprint, Memory speed, Memory performance, Memory usage - Memory utilization, Micro-benchmark, Microsecond, Monitoring
Linux/UNIX commands for assessing system performance include:
- uptime the system reliability and load average
- top for an overall system view
- vmstat vmstat reports information about runnable or blocked processes, memory, paging, block I/O, traps, and CPU.
- htop interactive process viewer
- dstat, atop helps correlate all existing resource data for processes, memory, paging, block I/O, traps, and CPU activity.
- iftop interactive network traffic viewer per interface
- nethogs interactive network traffic viewer per process
- iotop interactive I/O viewer
- iostat for storage I/O statistics
- netstat for network statistics
- mpstat for CPU statistics
- tload load average graph for terminal
- xload load average graph for X
- /proc/loadavg text file containing load average
(Event monitoring - Event log analysis, Google Cloud's operations suite (formerly Stackdriver), htop, mpstat, macOS Activity Monitor, Nagios Core, Network monitoring, netstat-iproute2, proc filesystem (procfs)]] - ps (Unix), System monitor, sar (Unix) - systat (BSD), top - top (table of processes), vmstat), Moore’s law, Multicore - Multi-core processor, Multiprocessor, Multithreading, mutex, Network capacity, Network congestion, Network I/O, Network latency (Network delay, End-to-end delay, packet loss, ping - ping (networking utility) (Packet InterNet Groper) - traceroute - netsniff-ng, Round-trip delay (RTD) - Round-trip time (RTT)), Network performance, Network switch performance, Network usage - Network utilization, NIC performance, NVMe, NVMe performance, Observability, Operating system performance, Optimization (Donald Knuth: “Premature optimization is the root of all evil), Parallel processing, Parallel programming (Embarrassingly parallel), Perceived performance, Performance analysis (Profiling), Performance design, Performance engineer, Performance equation, Performance evaluation, Performance gains, Performance Mantras, Performance measurement (Quantifying performance, Performance metrics), Perfmon, Performance testing, Performance tuning, PowerShell performance, Power consumption - Performance per watt, Processing power, Processing speed, Productivity, Python performance (CPython performance, PyPy performance - PyPy JIT), Quality of service (QOS) performance, Refactoring, Reliability, Response time, Resource usage - Resource utilization, Router performance (Processing delay - Queuing delay), Ruby performance, Rust performance, Scala performance, Scalability, Scalability test, Server performance, Size and weight, Slow, Software performance, Software performance testing, Speed, Stress testing, SSD, SSD performance, Swift performance, Supercomputing, Tbps, Throughput, Time (Time units, Nanosecond, Millisecond, Frequency (rate), Startup time delay - Warm-up time, Execution time), TPU - Tensor processing unit, Tracing, Transistor count, TypeScript performance, Virtual memory performance (Thrashing), Volume testing, WebAssembly, Web framework performance, Web performance, Windows performance (Windows Performance Monitor). (navbar_performance)
© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.