Bỏ qua để đến Nội dung

Vật lý ổ đĩa: vì sao ERP "load chậm" đúng lúc cao điểm

Người quản lý xưởng sản xuất nào cũng từng gặp cảnh này: gần cuối ca, cả xưởng sản xuất cùng lúc nhập số liệu sản xuất trong ngày vào ERP, và hệ thống vốn chạy êm cả buổi bỗng nhiên ì ạch. Bộ phận IT kiểm tra server, không thấy gì bất thường. Nhà cung cấp phần mềm kiểm tra code, cũng không thấy lỗi. Cả hai đều đúng, vì độ chậm này thực ra không nằm trong phần mềm. Nó nằm bên trong một khối kim loại đang quay, và nó xảy ra với bất kỳ hệ thống nào được xây trên cùng nguyên lý lưu trữ vật lý đó.

Hai loại bộ nhớ, chỉ một loại sống sót qua mất điện

Mọi máy tính, kể cả server chạy ERP của xưởng sản xuất, đều làm việc với hai loại lưu trữ rất khác nhau:

  • Bộ nhớ chính (RAM) cực nhanh nhưng dễ bay hơi (volatile) — mất điện là mất sạch dữ liệu.
  • Bộ nhớ phụ (secondary storage) — ổ cứng hay SSD — chậm hơn nhiều nhưng lưu trữ lâu dài (persistent). Mọi bản ghi sản xuất, mọi phiếu xuất nhập kho, mọi hóa đơn mà ERP lưu lại cuối cùng đều phải được ghi xuống bộ nhớ phụ, nếu không nó sẽ biến mất ngay khi máy khởi động lại.

Sự đánh đổi giữa tốc độ và độ bền này chính là điểm khởi đầu cho mọi chuyện tiếp theo.

Vài khoảnh khắc trước khi màn hình cập nhật, chuyện gì thực sự xảy ra

Khi ERP yêu cầu ổ đĩa trả về một mẩu dữ liệu, tổng thời gian truy cập (access time) không phải một thao tác đơn lẻ — nó là tổng của ba bước vật lý riêng biệt:

  1. Thời gian tìm kiếm (seek time): đầu đọc phải di chuyển vật lý đến đúng track trên đĩa.
  2. Thời gian trễ quay (rotational latency): đĩa phải tiếp tục quay cho đến khi đúng sector xoay tới ngay dưới đầu đọc.
  3. Thời gian truyền dữ liệu (transfer time): chỉ sau khi cả hai bước trên hoàn tất mới bắt đầu — lúc dữ liệu thực sự được đọc và gửi trả về.

Không bước nào trong ba bước này là tức thời. Tất cả đều là cơ học.

Block, track, sector — và vì sao một báo cáo có thể tạo ra hàng chờ

Dữ liệu trên đĩa không được lưu rời rạc theo file. Nó được tổ chức vật lý thành các track và sector, và được đọc/ghi theo từng block có kích thước cố định, thường từ 512 byte đến 8 KB. Một file trong ERP thực chất là một chuỗi bản ghi logic được ánh xạ lên một chuỗi block vật lý trên đĩa. Mỗi yêu cầu đọc — một người mở đơn hàng, một máy quét log, một báo cáo tổng kết ngày — đều phải đi qua cùng chu trình tìm kiếm, chờ quay, truyền dữ liệu trên cùng một ổ đĩa vật lý. Yêu cầu từng cái một thì cảm giác tức thời. Nhưng bốn mươi yêu cầu từ bốn mươi máy trạm trong cùng sáu mươi giây, thì tất cả đều đang xếp hàng chờ cùng một đầu đọc vật lý.

Đây không phải lý do để đổ lỗi cho nhà cung cấp ERP, cũng không phải lý do để hoảng vì phần cứng. Đây là lý do để đặt một câu hỏi chính xác hơn vào lần tới khi hệ thống chậm đúng vào cùng một khung giờ mỗi ngày. Nếu khung giờ chậm luôn trùng với giờ đổi ca, giờ đóng sổ cuối ngày, hay báo cáo cuối tháng, thì nhiều khả năng nút thắt nằm ở tầng lưu trữ vật lý đang phải xử lý hàng chục yêu cầu gần như đồng thời, chứ không phải lỗi trong logic ứng dụng. Sự phân biệt này quyết định thứ cần sửa: ổ lưu trữ nhanh hơn và lịch chạy báo cáo nặng hợp lý hơn giải quyết được nút thắt vật lý; viết lại phần mềm thì không.

Nguyễn Hải Minh

Nguyễn Hải Minh

Tôi làm việc trong ngành CNTT tại Đức — trực tiếp viết phần mềm và xử lý dữ liệu hệ thống ERP (như INFOR) cho các nhà máy sản xuất của Đức. Về học vấn, tôi có bằng Cử nhân Kỹ thuật CNTT và bằng Kỹ thuật viên Điện tử Thông tin cấp nhà nước tại Đức. Tất cả những nền tảng đó giúp tôi rèn luyện một tư duy hệ thống vững vàng để làm tự động hóa và tối ưu vận hành chuẩn chỉ.

Tìm hiểu thêm về tác giả →
4 lý do hệ thống file thô (Excel/thư mục) luôn thua CSDL thật khi xưởng lớn lên
ContactLiên hệ
Send a messageGửi tin nhắn