The document discusses IO subsystem architecture in Linux. It contains 3 layers: block layer, DM layer and request queue/elevator. The block layer handles generic block IO requests and completion events. The DM layer consists of components like LVM2 and EVMS. The request queue schedules requests using algorithms like deadline and anticipatory. It also contains probes and tracepoints to monitor IO events.
This document discusses various IO devices and measurement tools. It describes the chipset, SATA/SAS disks, SSDs, PCIe flash cards, RAID cards, and NVRAM cards. It provides example specifications and performance numbers for these devices. Tools discussed for measuring IO include fio, iostat, iotop, pidstat, hwconfig, and lsblk. The document considers how IO depth impacts device performance and questions the purpose of RAID cards and ensuring data integrity with PCIe cards.
This document provides an overview of understanding computer networks. It discusses network card models and bandwidth, latency of gigabit network cards, new trends in network cards, important performance metrics, Linux network protocol stacks, tuning the protocol stack, interrupt balancing, network bonding, observing network behavior with tools like ksysguard, wireshark, iptraf, socktop, the cost of network system calls, issues caused by insufficient memory in the protocol stack, packet dropping observation and analysis, and the ethtool utility.
The document discusses IO subsystem architecture in Linux. It contains 3 layers: block layer, DM layer and request queue/elevator. The block layer handles generic block IO requests and completion events. The DM layer consists of components like LVM2 and EVMS. The request queue schedules requests using algorithms like deadline and anticipatory. It also contains probes and tracepoints to monitor IO events.
This document discusses various IO devices and measurement tools. It describes the chipset, SATA/SAS disks, SSDs, PCIe flash cards, RAID cards, and NVRAM cards. It provides example specifications and performance numbers for these devices. Tools discussed for measuring IO include fio, iostat, iotop, pidstat, hwconfig, and lsblk. The document considers how IO depth impacts device performance and questions the purpose of RAID cards and ensuring data integrity with PCIe cards.
This document provides an overview of understanding computer networks. It discusses network card models and bandwidth, latency of gigabit network cards, new trends in network cards, important performance metrics, Linux network protocol stacks, tuning the protocol stack, interrupt balancing, network bonding, observing network behavior with tools like ksysguard, wireshark, iptraf, socktop, the cost of network system calls, issues caused by insufficient memory in the protocol stack, packet dropping observation and analysis, and the ethtool utility.
This document discusses several CPU high-efficiency programming techniques, including pipeline processing, superscalar execution, out-of-order execution, branch prediction, caching, and multi-core processing. It then provides examples of optimizing code for Intel processors using techniques like reducing branch prediction misses, taking advantage of out-of-order execution and avoiding long dependency chains, using bit operations instead of comparisons, and leveraging parallel execution across processor cores.
This document discusses CPUs and provides information about their architecture and performance. It begins with an overview and outlines topics like measurement, utilization, chipset architecture, cache hierarchy, and components inside CPUs. Examples are given of Intel Xeon and Sandy Bridge CPUs. Performance numbers are listed for operations like L1/L2 cache references and network/disk data transfers. Tools for investigating hardware topology and benchmarking micro-level performance are also introduced.
SystemTap is a dynamic tracing tool for Linux systems. It allows users to easily gather information about the running Linux system by defining probe points in a script. The script is compiled into a kernel module which can then be loaded to monitor the specified probe points. Some examples of useful probe points include functions, system calls, and kernel statements. SystemTap scripts can be used to trace execution, profile performance, monitor kernel functions and debug problems by printing at probe points. It provides a safe way to observe a live system without needing to recompile the kernel.