Tagged articles
132 articles
Page 2 of 2
Tencent IMWeb Frontend Team
Tencent IMWeb Frontend Team
May 31, 2021 · Backend Development

How libtask Implements Coroutines for High‑Performance Servers in C

libtask, a lightweight coroutine library written by Russ Cox, demonstrates how to build a cooperative multitasking scheduler in C, detailing task creation, context switching, epoll‑based I/O handling, and a non‑preemptive FIFO scheduling model that enables asynchronous I/O to appear synchronous for server development.

Casynchronous I/Ocoroutine
0 likes · 19 min read
How libtask Implements Coroutines for High‑Performance Servers in C
ITPUB
ITPUB
Apr 25, 2021 · Backend Development

How Epoll Saves Processes from Endless Polling: A Story of Linux I/O

Through a playful narrative, the article explains how Linux processes interact with the kernel, why blocking I/O is inefficient, and how the epoll system call and its associated mechanisms like soft interrupts and the scheduler dramatically improve network concurrency and performance.

LinuxNetwork I/ONon-blocking
0 likes · 7 min read
How Epoll Saves Processes from Endless Polling: A Story of Linux I/O
Open Source Tech Hub
Open Source Tech Hub
Apr 14, 2021 · Backend Development

How Redis Implements Efficient I/O Multiplexing with select, epoll, and kqueue

This article explains Redis's clean and elegant I/O multiplexing implementation, covering blocking I/O limitations, the reactor pattern, abstraction of select/epoll/kqueue into a unified API, key source functions, and platform‑specific module selection to achieve high‑performance single‑threaded networking.

I/O Multiplexingepollevent loop
0 likes · 14 min read
How Redis Implements Efficient I/O Multiplexing with select, epoll, and kqueue
NetEase Cloud Music Tech Team
NetEase Cloud Music Tech Team
Mar 31, 2021 · Backend Development

Unveiling libuv’s Linux Event Loop: epoll, Thread Pools, and Timers Explained

This article provides a deep technical walkthrough of libuv’s Linux implementation, covering epoll‑based I/O handling, level‑ and edge‑triggered events, the event‑loop architecture, timer management with a min‑heap, thread‑pool integration, and the mechanisms that drive asynchronous callbacks in Node.js.

LinuxSystems ProgrammingTimers
0 likes · 34 min read
Unveiling libuv’s Linux Event Loop: epoll, Thread Pools, and Timers Explained
ITPUB
ITPUB
Mar 18, 2021 · Fundamentals

Unveiling Linux epoll: How the Kernel Detects Ready Sockets in Microseconds

This article provides a deep, step‑by‑step analysis of Linux's epoll mechanism, covering socket creation with accept, the internal structures of eventpoll, how epoll_ctl registers sockets, the wait‑queue interactions, and the exact code paths that move a TCP packet from the NIC to a user‑space process.

IO MultiplexingLinuxNetwork programming
0 likes · 26 min read
Unveiling Linux epoll: How the Kernel Detects Ready Sockets in Microseconds
Qunar Tech Salon
Qunar Tech Salon
Mar 10, 2021 · Backend Development

Deep Dive into epoll: Principles, Blocking, and I/O Multiplexing

This article provides an in‑depth exploration of Linux’s epoll mechanism, covering its blocking behavior, kernel‑level processing, NAPI optimization, comparisons with select/poll, and practical insights into I/O multiplexing, helping backend engineers understand performance characteristics and design efficient network services.

Backend DevelopmentI/O MultiplexingLinux kernel
0 likes · 15 min read
Deep Dive into epoll: Principles, Blocking, and I/O Multiplexing
Liangxu Linux
Liangxu Linux
Feb 12, 2021 · Backend Development

Why Is Nginx So Fast? A Deep Dive into Its Process and Event Model

This article explains Nginx's high performance by examining its multi‑process architecture, asynchronous event‑driven design, modular components, and I/O multiplexing mechanisms such as epoll, while also comparing it with Apache and detailing connection limits and request handling flow.

BackendEvent-drivenNginx
0 likes · 11 min read
Why Is Nginx So Fast? A Deep Dive into Its Process and Event Model
Qu Tech
Qu Tech
Jan 25, 2021 · Operations

How to Diagnose and Fix High Load with Low CPU Utilization in Nginx

This article walks through Linux process states, fork/exec creation, CPU vs load metrics, network I/O models, and a real‑world Nginx high‑load case, showing how strace, accept_mutex, and SO_REUSEPORT can resolve the issue.

Linux performanceNginxSO_REUSEPORT
0 likes · 12 min read
How to Diagnose and Fix High Load with Low CPU Utilization in Nginx
Efficient Ops
Efficient Ops
Dec 9, 2020 · Backend Development

Master High‑Performance Backend with Linux Sockets, epoll, and OpenResty

This guide explains how Linux socket I/O multiplexing (select, poll, epoll) powers high‑concurrency servers, why caching and asynchronous non‑blocking are crucial, and provides step‑by‑step instructions to install, configure, and develop with OpenResty, Nginx, and Lua for scalable backend applications.

LinuxLuaNginx
0 likes · 12 min read
Master High‑Performance Backend with Linux Sockets, epoll, and OpenResty
Qunar Tech Salon
Qunar Tech Salon
Nov 18, 2020 · Mobile Development

Understanding Android Looper, MessageQueue, and Native Message Handling

This article explains how Android drives applications through a message‑driven model by detailing the roles of Message, MessageQueue, Looper, Handler, and ThreadLocal, and walks through the native implementation of ActivityThread's main loop, including prepareMainLooper, MessageQueue initialization, epoll integration, and the polling mechanisms that power the message processing cycle.

AndroidLooperMessageQueue
0 likes · 17 min read
Understanding Android Looper, MessageQueue, and Native Message Handling
JavaEdge
JavaEdge
Nov 3, 2020 · Backend Development

Why select and poll Fall Behind epoll: A Deep Dive into Linux I/O Multiplexing

This article compares Linux's select, poll, and epoll mechanisms, explaining their internal workings, limitations such as FD_SETSIZE and linear scanning, and why epoll's event‑driven design offers superior scalability and performance for high‑concurrency network servers.

I/O MultiplexingLinuxNetwork programming
0 likes · 7 min read
Why select and poll Fall Behind epoll: A Deep Dive into Linux I/O Multiplexing
Liangxu Linux
Liangxu Linux
Oct 8, 2020 · Backend Development

Master Blocking vs Non‑Blocking I/O: From select to epoll and Reactor Patterns

This article explains the fundamentals of blocking and non‑blocking I/O, compares select, poll, and epoll mechanisms, introduces the Reactor model and its variants, and shows how to solve the C10K problem with processes, threads, thread pools, and event‑driven architectures, complete with code examples.

Backend DevelopmentI/O MultiplexingNetwork programming
0 likes · 28 min read
Master Blocking vs Non‑Blocking I/O: From select to epoll and Reactor Patterns
Architecture Digest
Architecture Digest
Jul 17, 2020 · Backend Development

Comparison of select, poll, and epoll: Time Complexity, Advantages, and Implementation Details

This article compares the three I/O multiplexing mechanisms—select, poll, and epoll—by analyzing their time complexities, limitations, trigger modes, performance characteristics, and implementation details, helping developers choose the most suitable method for different Linux networking scenarios.

IO MultiplexingLinuxNetwork programming
0 likes · 14 min read
Comparison of select, poll, and epoll: Time Complexity, Advantages, and Implementation Details
Xiaokun's Architecture Exploration Notes
Xiaokun's Architecture Exploration Notes
Mar 18, 2020 · Backend Development

Mastering epoll: Deep Dive into Linux I/O Multiplexing

This article thoroughly examines Linux's epoll mechanism, detailing its SLAB memory management, middle‑layer design, edge and level triggering, comparison with select/poll, and related advanced polling technologies such as /dev/poll and kqueue, while also discussing C10K/C10M challenges and practical solutions.

C10KI/O MultiplexingLinux kernel
0 likes · 19 min read
Mastering epoll: Deep Dive into Linux I/O Multiplexing
360 Tech Engineering
360 Tech Engineering
Dec 20, 2019 · Fundamentals

Deep Dive into Linux epoll: Data Structures, Core Functions, and Implementation Details

This article provides a comprehensive analysis of Linux's epoll mechanism, covering its fundamental data structures, key kernel functions, wait‑queue handling, event insertion, wake‑up logic, and the differences between edge‑triggered and level‑triggered modes, while including full source code excerpts for reference.

Event-drivenI/O MultiplexingKernel
0 likes · 21 min read
Deep Dive into Linux epoll: Data Structures, Core Functions, and Implementation Details
Huawei Cloud Developer Alliance
Huawei Cloud Developer Alliance
Nov 8, 2019 · Operations

Boost Network Performance on Kunpeng CPUs: Tuning Tips & Tools

This guide explains how to improve network subsystem performance on Kunpeng processors by using tools such as ethtool and strace, adjusting PCIe payload size, binding NIC interrupts to NUMA‑local cores, tweaking interrupt coalescing, enabling TSO, and replacing select with epoll for high‑concurrency workloads.

KunpengNUMANetwork Tuning
0 likes · 12 min read
Boost Network Performance on Kunpeng CPUs: Tuning Tips & Tools
Architect's Tech Stack
Architect's Tech Stack
Apr 25, 2019 · Backend Development

Redis I/O Multiplexing: Design, Implementation, and Code Walkthrough

This article examines Redis's I/O multiplexing mechanism, explaining why it uses non‑blocking models, detailing the Reactor pattern, comparing select, epoll, and kqueue, and providing a thorough walkthrough of the underlying C code that implements event creation, addition, deletion, and polling across platforms.

Backend DevelopmentI/O MultiplexingReactor Pattern
0 likes · 11 min read
Redis I/O Multiplexing: Design, Implementation, and Code Walkthrough
JD Tech
JD Tech
Jun 21, 2018 · Backend Development

Understanding High Concurrency: From Network Cards to Multithreading Models

This article explains the fundamentals of high‑concurrency systems, covering how network cards and routers handle massive traffic, the role of the operating system and epoll/select, various I/O models, reactor and multithreading patterns, and strategies to improve CPU and I/O utilization.

IO MultiplexingNetwork programmingReactor Pattern
0 likes · 19 min read
Understanding High Concurrency: From Network Cards to Multithreading Models
Didi Tech
Didi Tech
May 18, 2018 · Backend Development

Understanding the Thundering Herd Problem in Linux and Nginx

The article explains the thundering herd problem where many processes wake for a single event, describes Linux’s kernel fixes for accept() and partial epoll solutions, and details how Nginx avoids the issue using a custom inter‑process accept mutex and lock design.

Linux kernelNginxconcurrency
0 likes · 14 min read
Understanding the Thundering Herd Problem in Linux and Nginx
Qunar Tech Salon
Qunar Tech Salon
Nov 23, 2016 · Databases

Redis Client/Server Interaction Process: A Step‑by‑Step Overview

This article provides a comprehensive, source‑code‑driven walkthrough of the Redis client‑server interaction, detailing the six main steps from socket establishment to command execution and response, while also covering auxiliary mechanisms such as beforeSleep processing, key expiration strategies, and the underlying epoll I/O multiplexing model.

Key ExpirationSocketclient-server
0 likes · 16 min read
Redis Client/Server Interaction Process: A Step‑by‑Step Overview
MaGe Linux Operations
MaGe Linux Operations
Oct 24, 2016 · Backend Development

Mastering epoll: High-Performance I/O Multiplexing in Linux

This article introduces Linux’s epoll mechanism, explains how to create and control epoll instances with epoll_create, epoll_ctl, and epoll_wait, describes the associated data structures and event flags, compares epoll to select, and highlights its O(1) scalability advantages for high‑connection backend applications.

BackendI/O MultiplexingLinux
0 likes · 7 min read
Mastering epoll: High-Performance I/O Multiplexing in Linux
MaGe Linux Operations
MaGe Linux Operations
May 22, 2015 · Backend Development

Why Multithreading, Blocking, and IOCP/Epoll Matter for High‑Performance Servers

The article explores the evolution from single‑core processors to multi‑core systems, explains threading, blocking, and synchronization concepts, and compares high‑performance communication models such as asynchronous I/O, IOCP on Windows and epoll on Linux, highlighting their trade‑offs for backend server scalability.

BackendBlockingIOCP
0 likes · 15 min read
Why Multithreading, Blocking, and IOCP/Epoll Matter for High‑Performance Servers