Disk I/O là gì? A-Z về tầm quan trọng, tính năng & Cách kiểm tra

  • Home
  • Blog
  • Disk I/O là gì? A-Z về tầm quan trọng, tính năng & Cách kiểm tra
DateTh8 6, 2025

5/5 - (1 bình chọn)

Disk I/O (Disk Input/Output) là khái niệm cơ bản nhưng cực kỳ quan trọng trong quản trị hệ thống và tối ưu hiệu suất máy chủ. Đây là quá trình đọc và ghi dữ liệu giữa ổ đĩa lưu trữ và bộ nhớ, ảnh hưởng trực tiếp đến tốc độ tải website, hiệu suất database và trải nghiệm người dùng. Trong bài viết này, bạn sẽ hiểu rõ Disk I/O là gì, tầm quan trọng của nó trong máy chủ, những yếu tố ảnh hưởngcách tối ưu hiệu quả để hệ thống vận hành mượt mà và ổn định hơn.

Disk I/O là gì?

Disk I/O (Disk Input/Output) là hoạt động đọc và ghi dữ liệu của ổ đĩa cứng. Khi một ứng dụng hoặc hệ điều hành cần truy cập thông tin, nó sẽ gửi yêu cầu tới ổ đĩa để đọc (Input) hoặc ghi (Output) dữ liệu. Tốc độ và tần suất của các hoạt động này chính là Disk I/O.

Disk I/O là gì

Disk I/O là gì?

Hãy tưởng tượng Disk I/O như một công nhân thủ kho, khi có yêu cầu lấy hàng, công nhân sẽ đi tìm, lấy và mang hàng ra (đọc dữ liệu). Khi có hàng mới về, công nhân sẽ sắp xếp và cất vào kho (ghi dữ liệu), nếu công nhân đó làm việc chậm chạp hoặc phải làm quá nhiều việc cùng lúc, toàn bộ quá trình sẽ bị tắc nghẽn.

Tương tự, nếu Disk I/O của máy chủ kém, các ứng dụng sẽ phải chờ đợi, dẫn đến tình trạng treo, chậm hoặc phản hồi trễ.

IOPS (Input/Output Operations Per Second) là một chỉ số đo lường hiệu suất Disk I/O phổ biến nhất. IOPS thể hiện số lượng thao tác đọc/ghi mà ổ đĩa có thể thực hiện được trong một giây. IOPS càng cao, khả năng xử lý dữ liệu càng mạnh.

Vì sao Disk I/O quan trọng với máy chủ?

Disk I/O đóng vai trò là “nút cổ chai” của nhiều hệ thống máy chủ. Hầu hết các ứng dụng, từ website cho đến cơ sở dữ liệu (database), đều phụ thuộc vào khả năng truy xuất dữ liệu từ ổ đĩa. Một Disk I/O yếu kém có thể gây ra những hậu quả nghiêm trọng:

  • Website load chậm: Các website sử dụng CMS như WordPress thường xuyên phải truy cập cơ sở dữ liệu để lấy nội dung. Nếu Disk I/O thấp, tốc độ tải trang sẽ bị ảnh hưởng.
  • Database phản hồi trễ: Các truy vấn phức tạp hoặc yêu cầu ghi dữ liệu lớn sẽ khiến database phải chờ đợi ổ đĩa xử lý, làm tăng thời gian phản hồi.
  • Ứng dụng bị treo: Trong các tác vụ cần xử lý nhiều dữ liệu như render video, xử lý big data, Disk I/O thấp có thể làm ứng dụng ngừng hoạt động.
  • Giảm trải nghiệm người dùng: Người dùng sẽ cảm thấy khó chịu khi phải chờ đợi lâu, làm giảm tỷ lệ tương tác và chuyển đổi.

Các tính năng nổi bật của Disk I/O

Quá trình đọc và ghi dữ liệu từ ổ đĩa

Đây là chức năng cốt lõi của Disk I/O – cho phép lưu trữ và truy xuất dữ liệu từ các thiết bị như ổ cứng HDD, ổ SSD hay hệ thống lưu trữ mạng SAN. Mỗi lần bạn mở tệp, lưu dữ liệu hay truy cập ứng dụng, Disk I/O sẽ thực hiện nhiệm vụ nhập và xuất dữ liệu giữa thiết bị lưu trữ và hệ thống.

Theo dõi hiệu suất thiết bị lưu trữ

Disk I/O còn được sử dụng để giám sát và đánh giá hiệu suất hoạt động của các thiết bị lưu trữ. Bạn có thể dễ dàng theo dõi các thao tác đọc và ghi trên ổ đĩa logic, đồng thời thiết lập giới hạn sử dụng nếu cần. Đây là công cụ hiệu quả giúp kiểm soát khả năng đáp ứng của hệ thống trong quá trình xử lý dữ liệu.

Các tính năng nổi bật của Disk IO

Các tính năng nổi bật của Disk IO

Quản lý thứ tự xử lý yêu cầu truy cập đĩa

Lập lịch đĩa (Disk Scheduling) hay còn gọi là lập lịch I/O là một cơ chế kỹ thuật quan trọng trong Disk I/O. Khi nhiều tiến trình gửi yêu cầu đọc/ghi, bộ điều khiển đĩa chỉ xử lý từng yêu cầu một. Các yêu cầu còn lại sẽ được đưa vào hàng đợi chờ xử lý.

Nếu các điểm truy cập dữ liệu nằm xa nhau trên bề mặt đĩa, đầu đọc phải di chuyển nhiều hơn, làm tăng thời gian truy xuất. Do đó, việc sắp xếp thứ tự truy cập đĩa đóng vai trò then chốt trong tối ưu hiệu suất I/O.

Các yếu tố ảnh hưởng đến Disk I/O

Hiệu suất Disk I/O không chỉ phụ thuộc vào bản thân ổ đĩa mà còn chịu tác động từ nhiều yếu tố khác nhau. Hiểu rõ các yếu tố này giúp bạn xác định được nguyên nhân gốc rễ khi gặp vấn đề về hiệu suất.

  • Loại ổ đĩa: Đây là yếu tố quan trọng nhất. Ổ cứng HDD (Hard Disk Drive) sử dụng đĩa từ quay cơ học, có tốc độ truy xuất chậm và IOPS thấp. Trong khi đó, ổ cứng SSD (Solid State Drive) sử dụng chip nhớ flash, không có bộ phận chuyển động, mang lại tốc độ và IOPS cao hơn gấp nhiều lần.
  • Hệ thống RAID: RAID (Redundant Array of Independent Disks) là công nghệ ghép nhiều ổ cứng lại với nhau để tăng hiệu suất hoặc đảm bảo an toàn dữ liệu. Các cấu hình RAID khác nhau như RAID 0, RAID 1, RAID 5 sẽ có hiệu suất Disk I/O và IOPS khác nhau.
  • Hệ thống tập tin (File System): Các hệ thống tập tin như EXT4, NTFS hay XFS có cách thức quản lý và lưu trữ dữ liệu khác nhau, từ đó ảnh hưởng đến hiệu suất đọc ghi.
  • Tải trọng công việc (Workload): Số lượng người dùng truy cập, các tiến trình chạy ngầm, tần suất truy vấn database và kích thước của các file đọc/ghi đều tác động trực tiếp đến Disk I/O.

Hướng dẫn kiểm tra Disk I/O trên server

Kiểm tra hiệu suất Disk I/O trên máy chủ Linux

Để đo lường hiệu suất Disk I/O trên máy chủ Linux, bạn có thể sử dụng các công cụ dòng lệnh phổ biến như iotop và iostat.

Trước tiên, hãy sử dụng lệnh top để quan sát tải tổng thể trên hệ thống. Nếu thấy đầu ra (output) không ổn định, bạn có thể theo dõi thêm thông số wa để biết hệ thống có đang bị chậm do đọc/ghi đĩa hay không.

Khi nghi ngờ hoạt động đọc/ghi có vấn đề, bạn nên dùng câu lệnh iotop hoặc iostat. Với iotop, bạn có thể biết được tiến trình nào đang chiếm dụng I/O nhiều nhất. Ví dụ, nhập:

$ iotop

Người dùng sẽ nhận đầu ra (Output) như sau:

Đầu ra (Output)

Đầu ra (Output)

Bạn sẽ thấy danh sách tiến trình đang sử dụng đĩa. Nếu muốn hiển thị chỉ những tiến trình thực sự đang hoạt động I/O, hãy dùng tuỳ chọn -o:

$ iotop -o

Output:

Đầu ra (Output) lệnh $ iotop-o

Đầu ra (Output) lệnh $ iotop-o

Còn với iostat, công cụ này cho phép bạn xem thông tin chi tiết về I/O của từng ổ đĩa riêng lẻ. Kết quả hiển thị có thể cho thấy tỉ lệ sử dụng của từng đĩa – ví dụ 17% hoặc 28% – giúp bạn đánh giá mức độ hoạt động hiện tại của từng thiết bị lưu trữ.

Để kiểm tra hiệu suất, bạn nhập lệnh sau vào terminal:

iostat -dx 5
Output của câu lệnh iostat

Output của câu lệnh iostat

Kiểm tra hiệu suất Disk I/O trên máy chủ Windows

Để theo dõi hiệu suất đọc/ghi dữ liệu trên ổ đĩa trong hệ điều hành Windows, bạn có thể sử dụng công cụ Windows Performance Monitor – một tiện ích đã được tích hợp sẵn trên các phiên bản Windows hiện nay. Công cụ này cung cấp sẵn các bộ đếm hiệu suất (performance counters), bạn có thể chọn tất cả và nhấn phím DEL để xóa.

Công cụ Windows Performance Monitor tải các bộ đếm

Công cụ Windows Performance Monitor tải các bộ đếm

Sau đó, nhấn vào biểu tượng “+” để thêm bộ đếm mới, chọn đối tượng hiệu suất là Physical Disk. Lúc này, bạn sẽ thấy danh sách các bộ đếm hiện ra như sau:

Performance Monitor

Performance Monitor

Bạn có thể chọn ổ đĩa hoặc phân vùng mà mình muốn theo dõi. Trong một số trường hợp, giá trị mặc định sẽ là _Total. Giao diện hiển thị có thể khác đôi chút giữa các phiên bản như Windows Server 2003 và 2008 R2. Tại đây, bạn nên thêm 4 bộ đếm như trong hình minh họa:

  • Avg. Disk sec/Transfer
  • Disk Bytes/sec
  • Disk Transfers/sec
  • Avg. Disk Bytes/Transfer

Sau mỗi lần chọn, đừng quên nhấn vào nút Add để thêm bộ đếm vào màn hình theo dõi.

Add Counters

Add Counters

Nếu bạn chỉ muốn xem nhanh các thông số hiệu suất tại thời điểm hiện tại, hãy chuyển chế độ hiển thị trong tab biểu đồ từ Line sang Report. Lúc này, công cụ sẽ hiển thị các con số cụ thể với ý nghĩa như sau:

  • Avg. Disk Bytes/Transfer: cho biết kích thước trung bình của mỗi lần I/O
  • Disk sec/Transfer: phản ánh độ trễ trung bình trong mỗi lần truyền dữ liệu
  • Disk Bytes/sec: đại diện cho tốc độ xử lý dữ liệu (Throughput)
  • Disk Transfers/sec: là chỉ số IOPS (số lần I/O mỗi giây)
Reliability and Performance Monitor

Reliability and Performance Monitor

Khi theo dõi hiệu suất hoạt động của Disk I/O bằng công cụ Windows Performance Monitor, bạn cần lưu ý một số điểm quan trọng sau:

  • Đơn vị đo độ trễ thường tính bằng mili giây, trong khi công cụ này lại hiển thị số liệu dưới dạng giây. Vì vậy, bạn cần tự quy đổi lại cho chính xác – chẳng hạn, 0,020 giây tương đương 20 mili giây.
  • IOPS được thể hiện bằng MB/s. Tuy nhiên, trên Windows Server 2003, hệ thống lại hiển thị dưới dạng Byte/s. Trường hợp này, bạn cũng cần chuyển đổi: 1 Byte/s tương ứng với 1e-6 MB/s.

Tóm lại, việc đọc hiểu đúng các thông số sau khi kiểm tra IOPS của ổ đĩa sẽ giúp bạn lên kế hoạch nâng cấp hệ thống hợp lý. Nhờ đó, các nguy cơ tiềm ẩn có thể được phát hiện sớm, giảm thiểu rủi ro lỗi hệ thống trong tương lai.

Cách tối ưu và tăng hiệu suất Disk I/O

Nếu máy chủ của bạn gặp tình trạng Disk I/O cao hoặc hiệu suất kém, dưới đây là những giải pháp tối ưu mà bạn có thể áp dụng.

Nâng cấp lên ổ cứng SSD

Đây là giải pháp hiệu quả và mang lại sự khác biệt rõ rệt nhất. SSD cung cấp tốc độ đọc/ghi nhanh hơn và IOPS cao hơn đáng kể so với HDD. Đối với các máy chủ chạy database, web server hoặc có lưu lượng truy cập lớn, việc chuyển sang SSD là một khoản đầu tư xứng đáng.

Tối ưu hóa database

Đối với các ứng dụng có nhiều tương tác với database, bạn nên tập trung vào việc tối ưu các truy vấn.

  • Sử dụng chỉ mục (Index): Tạo index cho các cột thường xuyên được truy vấn để database tìm kiếm dữ liệu nhanh hơn, giảm tải cho Disk I/O.
  • Tối ưu truy vấn: Viết lại các truy vấn phức tạp, sử dụng JOINGROUP BY hiệu quả hơn.

Sử dụng bộ nhớ đệm (caching)

Caching giúp lưu trữ các dữ liệu thường xuyên được truy cập vào RAM, giảm số lần hệ thống phải đọc từ ổ đĩa.

  • Caching ở ứng dụng: Sử dụng các plugin hoặc thư viện caching như Redis, Memcached.
  • Caching ở web server: Cấu hình Varnish Cache hoặc Nginx cache để lưu trữ các file tĩnh như ảnh, CSS, JS.

Phân bổ workload hợp lý

Hãy kiểm tra các tiến trình đang chạy trên server để xác định tiến trình nào đang tiêu thụ nhiều Disk I/O nhất. Tối ưu hoặc di chuyển các tác vụ nặng sang thời gian ít người dùng truy cập.

Disk I/O cao có phải là lỗi?

Chỉ số Disk I/O cao không phải lúc nào cũng là một lỗi, nó có thể chỉ ra rằng hệ thống của bạn đang hoạt động với tải trọng lớn, có nhiều người dùng truy cập hoặc đang xử lý các tác vụ nặng.

  • Khi nào là bình thường: Nếu Disk I/O cao trong những giờ cao điểm, khi có nhiều người dùng truy cập website hoặc khi bạn đang chạy một tác vụ sao lưu dữ liệu, điều này là bình thường và cho thấy hệ thống đang hoạt động.
  • Khi nào là bất thường: Nếu Disk I/O luôn ở mức cao liên tục ngay cả khi không có nhiều người dùng, đó có thể là dấu hiệu của một tiến trình bị lỗi, một truy vấn database không hiệu quả hoặc phần mềm độc hại đang hoạt động.

Hãy sử dụng các công cụ giám sát để theo dõi Disk I/O liên tục, từ đó bạn có thể xác định được hành vi Disk I/O bình thường của hệ thống.

Chọn hosting/VPS như thế nào để có Disk I/O tốt?

Khi lựa chọn dịch vụ hosting hoặc VPS, bạn cần xem xét kỹ lưỡng các yếu tố liên quan đến hiệu suất Disk I/O.

  • Loại ổ cứng: Luôn ưu tiên các gói dịch vụ sử dụng ổ cứng SSD hoặc NVMe SSD. NVMe là chuẩn kết nối mới, mang lại tốc độ vượt trội hơn cả SSD SATA thông thường, rất phù hợp cho các ứng dụng đòi hỏi hiệu suất cao.
  • Thông số IOPS: Một số nhà cung cấp dịch vụ máy chủ sẽ công khai thông số IOPS. Bạn nên chọn các gói có IOPS tối thiểu 1000+ cho các website nhỏ và 10,000+ cho các ứng dụng lớn.
  • Công nghệ ảo hóa: Các công nghệ ảo hóa như KVM thường cung cấp tài nguyên Disk I/O riêng biệt cho từng VPS, giúp hiệu suất ổn định và ít bị ảnh hưởng bởi các VPS khác trên cùng một server vật lý.

Việc đầu tư vào một dịch vụ có Disk I/O tốt ngay từ đầu sẽ giúp bạn tránh được rất nhiều vấn đề về hiệu suất sau này.

Disk I/O không chỉ là một thuật ngữ kỹ thuật mà còn là yếu tố quyết định hiệu suất của toàn bộ hệ thống máy chủ, việc hiểu rõ bản chất, các yếu tố ảnh hưởng và biết cách tối ưu Disk I/O sẽ giúp bạn xử lý các vấn đề hiệu suất một cách chủ động và hiệu quả.

Bạn nên thường xuyên giám sát Disk I/O, sử dụng các công cụ phù hợp để đo lường. Quan trọng hơn, hãy đầu tư vào phần cứng và dịch vụ hosting chất lượng. Một máy chủ được trang bị ổ cứng SSD hoặc NVMe SSD sẽ mang lại sự ổn định và tốc độ vượt trội.

Để lại một bình luận