'System performance' reading note: Part1 Introduction
System performance is to study the perforamance of the whole system, including both hardware and fullstack software. The fullstack software includes OS, database, application, network. In a distributed system, it can include multiple servers.
The goal of studying system performance is to reduce latency and resource cost.
The activity includes performance goal designing, benchmark testing, non-regression performance testing, performance improving and debugging.
When analysing a performance issue, there are two viewpoints: workload analysis and resource analysis.
There are two types of performance tools: observation tool and experiment tool. For observation tools, there are counting tools like vmstat, collectd, /proc; CPU/memory profiling tools like perf; tracing tools like strace, tcpdump, Ftrace, BCC and bpftrace. For experiment tools, there are standard benchmarks or custom workload emulation tools.
For different system performance tasks, there are different strategies, like a fast checking cheatsheet based on tools (uptime, dmesg, vmstat, mpstat, iostat, free, sar, top), checking processe changes, CPU, memory , file cache, network workloads.
Comments
Post a Comment