---
title: 使用异步文件操作libaio提升系统性能
description: "由于文件读取是同步的，线程在读取文件时会处于阻塞状态。程序为了提升性能和磁盘的吞吐量，会创建多个单独的磁盘读写线程，并通过信号量等机制进行线程间通信（同时带有锁）；显然线程多，锁多，会导致更多的资源抢占，系统整体性能下降。"
url: https://www.hikunpeng.com/document/detail/zh/perftuning/tuningtip/kunpengtuning_12_0042.html
sourcePath: /source/zh/perftuning/tuningtip/kunpengtuning_12_0042.html
indexId: b054a9d10dfea4091867613e17a9f8debc647b4aa94cdc7eb6b7be801ead2c7a58
---
# 使用异步文件操作libaio提升系统性能

#### 原理

由于文件读取是同步的，线程在读取文件时会处于阻塞状态。程序为了提升性能和磁盘的吞吐量，会创建多个单独的磁盘读写线程，并通过信号量等机制进行线程间通信（同时带有锁）；显然线程多，锁多，会导致更多的资源抢占，系统整体性能下降。

libaio提供了磁盘文件读写的异步机制，使得文件读写不用阻塞，结合epoll机制，实现一个线程可以无阻塞地运行，同时处理多个文件读写请求，提升服务器整体性能。


#### 修改方式

参考附录中libaio实现参考。
