Hi, I’m Viacheslav 👋
Welcome to my corner of the web where code, systems thinking, and life philosophy meet. I write about GNU/Linux, SRE, Golang, Rust, async I/O, and network engineering.
Projects #
trixter
– a high‑performance, runtime‑tunable TCP chaos proxy.tokio-netem
– a collection of Tokio AsyncRead/AsyncWrite adapters (delay, throttle, slice, terminate, shutdown, corrupt data, inject data) that power the Trixter proxy and can be used independently in tests and harnesses.cgtouch
–vmtouch
like util to show per cgroup per file Page Cache stats.
Async Rust and Tokio I/O Streams: Backpressure, Concurrency, and Ergonomics
- Async Rust with Tokio IO Streams: Backpressure, Concurrency, and Ergonomics.md
- I/O loop
- Tokio I/O Patterns
Linux Page Cache mini book
- Linux Page Cache for SRE
- Prepare environment for experiments
- Essential Page Cache theory
- Page Cache and basic file operations
- Page Cache eviction and page reclaim
- More about
mmap()
file access - cgroup v2 and Page Cache
- How much memory my program uses or the tale of working set size
- Direct IO (DIO)
- Advanced Page Cache observability and troubleshooting tools
"What every SRE should know about" series
â–º GNU/Linux resolvers and Dual-Stack applications
- What every SRE should know about GNU/Linux resolvers and Dual-Stack applications
- What is a stub resolver?
- History:
gethostbyname()
and old good friends getaddrinfo()
and POSIX specgetaddrinfo()
fromglibc
getaddrinfo()
frommusl libc
- Dual-Stack applications
- Async non-blocking resolvers in
C
- Stub resolvers in languages
- Dual-stack software examples
systemd-resolved
- Querying Nameservers on dual-stack hosts
- Present and future of resolvers and DNS related features
- Troubleshooting tools for resolvers and DNS