mat ong nguyen chat barrie tu dong cong inox tu dong cong xep inox tu dong

Trang chủ/Giải pháp/ Phát hiện, phòng tránh, và loại trừ các tắc nghẽn hệ thống

Phát hiện, phòng tránh, và loại trừ các tắc nghẽn hệ thống

Tắc nghẽn I/O đã trở thành vấn đề rất phổ biến bởi vì sự nâng cấp không ngừng của bộ xử lý và tài nguyên bộ nhớ. Việc tăng tốc độ xung nhịp cho bộ xử lý và truy cập bộ nhớ diễn ra liên tục. Ngày nay, phần lớn các hệ thống có nhiều bộ xử lý, và các bộ xử lý thường là đa lõi và chạy với tốc độ GHz. Ví dụ, một máy chủ cao cấp có thể có 4 bộ xử lý 4 lõi với tốc độ GHz .

Cùng với đó, tốc độ truy cập bộ nhớ cũng đang được nâng cấp để theo kịp với tốc độ của lõi. Hai loại bộ nhớ chủ yếu được sử dụng hiện nay là DDR3 và FB-DIMM (Fully Buffered) cùng với các cây lưu trữ tạm thời L1/L2/L3 lớn hơn. Mặc dù bộ xử lý và bộ nhớ vẫn chủ yếu là những nguồn xảy ra sự tắc nghẽn, nhưng I/O thường bị bỏ qua và không được kiểm tra cẩn thận. Phần này sẽ kiểm tra các công cụ và phương pháp để tránh, phát hiện, và loại trừ các tắc nghẽn trong:

  • Các liên kết cấu trúc và bus có khả năng mở rộng như PCI Express.
  • Kênh máy chủ, các bộ điều hợp mạng bus và các mạch điều khiển I/O.
  • Các thiết bị lưu trữ.

Cách tốt nhất để tránh một tắc nghẽn I/O là cần đánh giá và thiết kế cẩn thận giao diện I/O từ giao diện của tổ hợp bộ xử lý xuống tới các kênh I/O, và bao gồm cả các nguồn và bộ chứa cơ bản dành cho dữ liệu tốc độ cao, như là các thiết bị lưu trữ và mạng cũng như các hệ thống phụ. Phương pháp giáp mối (end-to-end) này rất quan trọng bất kể đối với một hệ thống được thiết kế sẵn (OTS) hay được được thiết kế tùy chỉnh. Các hệ thống OTS vẫn yêu cầu lựa chọn cẩn thận các thành phần và các hệ thống phụ quan trọng như dưới đấy:

  • Lựa chọn mạch điều khiển bộ nhớ và chipset I/O, đặc biệt với khóa chuyển mạch PCI-e dành cho việc mở rộng kênh I/O
  • Hiệu năng của mạch điểu khiển giao diện mạng (NIC), bộ điều hợp kênh máy chủ (HCA), bộ điều hợp bus máy chủ (HBA), và khả năng cân bằng dải tần và các hoạt động đầu vào và đầu ra để đo các độ trễ. Khả năng của thiết bị lưu trữ với công nghệ được lựa chọn dựa trên chi phí không chỉ về dung lượng mà còn sự thực thi truy cập

Bộ nhớ và các chipset mạch điều khiển I/O là một thành phần quan trọng của các hệ thống có thể mở rộng được và thường là nguồn xảy ra tắc nghẽn và vấn đề biến đổi quy mô hệ thống. Phần lớn các tổ hợp bộ xử lý được thiết kế giao diện cho các kênh I/O như là Infiniband, gigE/10GE Ethernet, Fibre Channel, và các mạng và cấu trúc dải tần cao khác, thông qua PCI Express. Vấn đề quan trọng của việc thiết kế là liệu mỗi nút (máy chủ hay nhóm bộ xử lý) trong thiết kế hệ thống tổng thể có đủ các kênh I/O dành cho:

  • Kết nối với kho lưu trữ.
  • Kết nối tới các mạng dịch vụ máy khách.
  • Kết nối với các mạng hay cấu trúc có hiệu lực cao. Điều này cung cấp sự mở rộng khung lưới hay các cụm máy.

Phần lớn các nhà thiết kế quan tâm trước tiên tới các yêu cầu về mạng và lưu trữ và đảm bảo rằng có đủ các kênh I/O, nhưng họ thường quên chú ý tới sự tương thích của các kênh I/O đối với các kết nối mạng hay cấu trúc biến đổi quy mô. Biến đổi quy mô các kênh I/O rất quan trọng vì nó giúp các vấn đề tắc nghẽn hệ thống có thể được giải quyết trong tương lại. Kích cỡ của một nút không cần phải lớn, nhưng một khối xây dựng cho biến đổi quy mô hệ khung lưới và các cụm máy cần được cân bằng tốt vì điều này rất quan trọng. Xem Tài nguyên để có liên kết tới các giải pháp khóa chuyển mạch PCI-e dành cho các kênh I/O.

Các kết nối tới kho lưu trữ và các mạng dịch vụ máy khách dành cho việc biến đổi quy mô hệ thống bao gồm việc sử dụng của NIC, HCA, hay HBA. Những bus máy chủ có giao diện mạch điều khiển I/O có thể mở rộng này giống như PCI-e đối với các mạng, cấu trúc, và các mạng vùng lưu trữ (SAN). Để tránh bị tắc nghẽn ở một trong những mạch điều kiện này, hãy kiểm tra đơn thể sự thực thi, và xem xét cẩn thận các kỹ thuật bên dưới. Ví dụ, một NIC đơn giản sẽ cần xử lý quan trọng trên hệ thống máy chủ để chạy một cấu trúc giao thức truyền tải, trong khi một động cơ giảm tải TCP (TOE) và phần lớn SAN HBA cung cấp xử lý giao thức quan trọng trên mạch điều kiện hơn là nạp hệ thống máy chủ.

Tốc độ truyền tải và sự cân bằng giữa khoảng cách, nguồn điện, và tốc độ truyền (bit) cũng cần được xem xét kỹ lưỡng. Ví dụ, Infiniband có thể hỗ trợ tốc độ dữ liệu chập bốn (QDRs) của 40Gbps dành cho các cụm máy, mặc dù Ethernet có thể tốt hơn cho tính khả vận nội tại. Sự so sánh tổng thể của các giao thức này không phải là mục đích của bài viết này, nhưng những phần phát hiện và loại trừ cung cấp các công cụ đánh giá tốt cho việc kiểm tra lựa chọn.

Ngày nay, phần lớn lưu trữ có thề mở rộng được là thiết bị lưu trữ được đính kèm SAN hay đính kèm mạng (NAS) hơn là một đính kèm trực tiếp với các mạch điều khiển ATA hay SCSI, nên các mạng và đính kèm lưu trữ đang hội tụ. Lưu trữ mạng có thể được đính kèm SAN, nơi hệ thống phụ SAN cung cấp truy cập khối cho các tập hợp của các đĩa tới các máy chủ khởi đầu dành cho việc truy cập cả hai bộ đĩa (JBOD) hay các dãy đĩa RAID. NAS chủ yếu được truy cập bởi các máy khách hệ thống tệp mạng (NFS) (hay các giao thức các cụm máy hay hệ thống tệp được phân phối khác) qua một đầu hay cổng nối NAS và thỉnh thoảng bởi lưu trữ được đính kèm trực tiếp.

Điều khiển các kênh I/O và NIC/HBA/HCA với một máy phát điện tải trọng có thể cung cấp cùng lúc hai hoạt động Đọc và Ghi với nhiều I/O với kích cỡ khác nhau. Đây là một trong những cách tốt nhất để tìm ra các tắc nghẽn I/O. Mặc dù vậy, điều khiển tải trọng với một công cụ như IOzone dành cho Linux và Windows hay Iometer dành cho Windows và Linux (xem Tài nguyên) cũng rất hữu ích trong việc giám sát các số liệu cho các truyền tải I/O. Đối với Linux, bạn có thể giải quyết việc này bằng SYSSTAT (hay iostat); đối với Windows, bạn có thể thực hiện với giám sát thực thi (PerfMon — xem Tài nguyên).

Chú ý rằng IOzone làm việc tương đối tốt trên Windows như là trên Linux và chạy qua một hệ thống tệp. Việc chạy qua hệ thống tệp giúp thuận tiện trong việc kiểm tra thực thi của hệ thống tệp (các tính năng lưu trữ tạm thời và bộ nhớ đệm I/O) cùng với sự thực thi khối I/O ở dưới, nhưng nó yêu cầu sự phân tích cẩn thận để phân biệt giữa các vận chuyển I/O được trữ và hoạt động thực của kênh I/O. Iometer có thể chạy trên cả ổ đĩa vật lý không được định dạng và ổ đĩa với hệ thống tệp NTFS trong Windows. Khả năng chạy trên các ổ đĩa vật lý cung cấp một phương pháp cho việc quyết định một kênh I/O không có lưu trữ tạm thời và bộ nhớ đệm để lưu trữ thực thi. Iometer trong Linux chủ yếu chỉ chạy qua một hệ thống tệp. Bạn có thể chạy IOzone với các tệp đủ lớn và với đủ người vận hành I/O cùng lúc mà bạn có thể đạt tới đỉnh lưu trữ tạm thời — điểm mà tại đó các I/O không thể đáp ứng của việc Đọc từ lưu trữ tạm thời và Ghi tới các bộ đệm.

Việc sử dụng IOzone trong Windows để phân tích lưu lượng đĩa (xem Hình 1), độ trễ của đĩa và độ sâu của hàng đợi (xem Hình 2), và các đặc điểm kích cỡ vận chuyển của đĩa I/O (xem Hình 3) tương đối đơn giản. Bạn có thể sử dụng các tệp cấu hình Perfmon.msc có trong phần Tải xuống, minh họa bằng biểu đồ cho các tham số thực thi này bằng cách chạy tải trọng với lệnh:

iozone.exe -i0 -i1 -i2 -R -s100M -r128K -t32 -T
3

Lệnh này chạy lần lượt Ghi qua với các luồng 32 người dùng, các yêu cầu chuyển giao 128KB I/O sử dụng các tệp 100MB sau một Đọc tuần tự, và sau đó chạy lệnh Đọc ngẫu nhiên, tiếp theo là việc Ghi. Đọc Ngẫu nhiên và Ghi có mức thực thi thấp hơn nhiều so với tuần tự, bởi vì đĩa phải tìm kiểm và xoay vòng những vị trí ngẫu nhiên trên phương tiện lưu trữ.

 

Tin liên quan