Đây là bài viết thứ hai trong loạt bài Căn bản về kiến trúc cơ sở hạ tầng. Bài viết này sẽ giúp các nhà thiết kế hệ thống và các nhà kiến trúc giải pháp có các công cụ và phương pháp để giải quyết thành công sự tắc nghẽn. Những dạng tắc nghẽn thường là dải tần, dung lượng, hay giới hạn xử lý, mà ở đó các ứng dụng là bộ xử lý, đầu vào/đầu ra (I/O), bộ nhớ, hay giới hạn lưu trữ. Mặc dù vậy, các ứng dụng thời gian thực cũng có thể có các yêu cầu về độ trễ phản hồi lại các tắc nghẽn.
Source: http://www.ibm.com/developerworks/vn/
Yêu cầu đầu tiên của bạn là phải biết cách tránh các tắc nghẽn. Thứ hai, bạn phải biết cách phát hiện các tắc nghẽn trong hệ thống, đó có thể là vấn đề thực thi chậm hoặc vấn đề biến đổi quy mô hệ thống. Cuối cùng, bạn cần nghiên cứu cách sử dụng các công cụ và phương pháp để loại trừ các tắc nghẽn. Trong bài viết này, tôi sẽ miêu tả 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, bao gồm: tắc nghẽn I/O, bộ xử lý, và bộ nhớ trên các hệ thống dựa trên Linux® và Microsoft® Windows®. Đã có bài viết về cách tránh, phát hiện, và loại trừ các tắc nghẽn, nhưng bài viết này sẽ cung cấp những ví dụ cụ thể cũng như những giải thích chi tiết hơn, giúp bạn có thể giải quyết được những vấn đề khó khăn của các hệ thống lớn — ở mức độ cơ sở hạ tầng.
Tắc nghẽn I/O
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
- 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.
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.
Các công cụ và kỹ thuật: Phát hiện các tắc nghẽn I/O
Đ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 |
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ữ.
Hình 1. Đĩa Ghi/Đọc qua nút cổ chai
Chú ý rằng Hình 1 biểu thị việc Ghi sau khi quá trình Ghi đầu tiên hoàn thành một nửa như trên biểu đồ, đối với việc chạy -i0, và sau đó biểu thị thực thi việc Đọc cho -i1 cho một nửa còn lại trên biểu đồ, như trong Hình 2 và Hình 3. Rõ ràng, ổ đĩa SATA 2.5" trong chiếc máy tính xách tay của tôi bị một tắc nghẽn với tốc độ của I/O khoảng 20MB/sec. Đối với thực thi truy cập lớn hơn đến dữ liệu lưu trữ, tôi cần một thiết bị nhanh hơn, như ổ đĩa SAS (10,000 RPM), dãy đĩa RAID, hay một SSD.
Hình 2. Tốc độ vận chuyển của đĩa I/O dành cho việc Ghi/Đọc
Trong Hình 2, tốc độ vận chuyển 64K của đĩa I/O dường như phù hợp với hệ thống tệp NTFS trong cả việc Đọc và Ghi.
Hình 3. Đĩa I/O chờ trong hàng để Ghi/Đọc
Trong Hình 3, bạn có thể thấy rằng với các hệ thống tệp NTFS, có một thuận lợi rất lớn đối với các bộ đệm Ghi, chúng giữ hàng chờ Ghi xuống ít hơn năm I/O và độ trễ dưới 50 mili giây. Mặc dù vậy, đối với việc Đọc, bạn thấy một kịch bản khác hoàn toàn, với độ trễ lên tới 500 mili giây và một hàng chờ đọc với 35 đến 40 I/O. Bảng 1 là kết quả IOzone cho ổ đĩa SATA trong chiếc máy tính xác tay của tôi, IOzone chạy trong một thư mục trên Windows XP với hệ thống tệp NTFS. IOzone cũng chạy giống như trên Linux, và bạn có thể sử dụng
iostat
để giám sát các số
liệu Bảng 1. Kết quả IOzone biểu thị một tắc nghẽn trong ổ đĩa SATA
Tải trọng | KB/s |
---|---|
Ghi lần đầu | 17476.48 |
Ghi lại | 17407.94 |
Đọc lại | 6595.88 |
Đọc Ngẫu nhiên | 6080.07 |
Ghi Ngẫu nhiên | 9378.40 |
- Netperf, dành cho việc tạo ra các gói tin TCP hay giao thức gói dữ liệu người dùng (UDP) trên Linux.
- Wireshark, dành cho giao thức mạng IP và phân tích thực thi trên cả máy chủ Linux và Windows.
- SYSSTAT dành cho Linux.
- Microsoft SQLIO dành cho Windows, nó cung cấp phân phối độ trễ.
Kiến thức và kỹ năng: Loại trừ các tắc nghẽn I/O
Bạn có thể loại trừ các tắc nghẽn I/O và lưu trữ theo nhiều cách khác nhau, nhưng bạn phải xem xét cẩn thận về mặt chi phí, sự thực thi, và cân bằng dung lượng. Các lựa chọn dành cho việc biến đổi quy mô hệ thống từ các đĩa SATA/SAS được đính kèm trực tiếp, được tìm thấy trong các máy chủ:
- Nâng cấp HDD trục xoay lên SSD.
- Các bộ đĩa và các mạch điều khiển RAID trong máy chủ (có thể mở rộng lên tới 8 đĩa SFF 2.5" SAS trong 2RU hay 16 trong 4RU— ví dụ, các máy chủ IBM System x®).
- Các dãy đĩa RAID được đính kèm SAN có thể mở rộng I/O ngẫu nhiên lên tới petabyte và gigabyte.
- Các đầu và cổng NAS cung cấp các dịch vụ tệp cho các máy khách.
Các tắc nghẽn bộ xử lý thường xảy ra với các ứng dụng điện toán lớn như là xử lý tệp ảnh hay các thuật toán là các NP-hard. Bình thường, rất nhiều hệ thống có bộ xử lý dự phòng; nhưng thực tế, chúng có thể gây tốn điện hay tỏa nhiệt lớn trong khi nó lại không giúp cải thiện nhiều cho tổng thể thực thi hệ thống. Khi bạn phát hiện một tắc nghẽn bộ xử lý, bạn (cơ bản) có ba tùy chọn để loại trừ nó:
- Thêm tài nguyên bộ xử lý.
- Tối ưu các mã trình ứng dụng để sử dụng các tài nguyên bộ xử lý một cách hiệu quả hơn.
- Thêm các động cơ giảm tải máy chủ cho các xử lý liên quan tới I/O lưu trữ và mạng.
Kiến thức và kỹ năng: Tránh các tắc nghẽn bộ xử lý
Các tài nguyên bộ xử lý có kích cỡ tương ứng dựa trên định hình ứng dụng và phân tích tổ hợp các thuật toán là cách tốt nhất để tránh một tắc nghẽn bộ xử lý. Phép đo lường để đo MIPS và FLOPS cũng rất hữu ích, nhưng nói chung, một trong những cách để thiết lập kích cỡ cho bộ xử lý bạn cần là chạy các kiểm tra với các ứng dụng thực và định hình đơn giản và ước lượng biến đổi quy mô hệ thống với tốc độ xung nhịp và khả năng thực hiện tính toán song song giữa một ứng dụng tồn tại. Xem lại luật Amdahl:
Equation 1. Amdahl's law for speed-up by parallel execution
Speedup = 1 / [(1 - P) + (P/N)] |
nơi P là một phần của thuật toán có thể được tạo song song và N là số bộ xử lý. Tất nhiên trong trường hợp tốt nhất, tốc độ là 1/[1/n], trong đó N cho thuật toán song song hay ứng dụng. Rất nhiều ứng dụng có thể song song, những một trong đó không thể như vậy, nên đây là một xem xét cơ bản trước khi đầu tư thêm nhiều lõi bộ xử lý và cố gắng phân luồng một ứng dụng. Việc hiểu rõ tổ hợp thuật toán bên dưới và liệu nó là P, NP-Complete, hay NP-hard, là vấn đề rất cơ bản. (NP có nghĩa là một thuật toán sẽ chạy trong thời gian đa thức, không xác định.)
Hoàn toàn không thực tế khi tin rằng bạn có thể tránh một tắc nghẽn bộ xử lý bằng cách viết lại thuật toán NP thành thuật toán tổ hợp P, nhưng hy vọng điều đó sẽ xảy ra. Nhiều sự tối ưu hóa và các thuật toán đồ thị giao nhau rất hữu ích nhưng NP-hard thì không. Tổ hợp thuật toán có thể cũng đơn giản, nhưng những yêu cầu cao tầng cho các điện toán cũng có thể làm tràn một bộ xử lý; trong những trường hợp này, bạn có thể thường sử dụng giảm tải để tránh tắc nghẽn bộ xử lý. Ví dụ, bạn có thể sử dụng những đơn vị xử lý đồ họa (GPU) để giảm tải cho các hoạt động xử lý hình ảnh đơn giản. Những hoạt động này bao gồm những hoạt động đơn giản nhưng trong đó các hình ảnh có dung lượng hàng triệu pixel. Lý tưởng, phòng tránh là biện pháp tốt nhất, nhưng mã trình thường được sử dụng lại hay các ứng dụng được chứa, và nó cần thiết phải tìm ra nguồn tắc nghẽn của bộ xử lý. May mắn là có rất nhiều công cụ giúp để thực hiện điều này.
Công cụ và kỹ thuật: Phát hiện các tắc nghẽn bộ xử lý
Chi tiết về phân tích tắc nghẽn bộ xử không được đề cập trong bài viết này, nhưng bạn có thể tìm hiểu sâu hơn trong các bài viết như là "Các bài học lớn, Phần 3: Điều chỉnh và giám sát thực thi." Tổng thể, các phương pháp này có thể được tổng kết như dưới đây:
- Chạy định hình thời gian của các ứng dụng để quyết định độ dài đường dẫn của thuật toán (số lượng của chỉ dẫn cho một khối mã trình).
- Chạy định hình thời gian để quyết định sự thi hành hiệu quả của một đường dẫn (bao nhiêu thời gian để đi qua một khối các chỉ dẫn).
- Phân tích hiệu của của đường ống dẫn bộ xử lý (một đường ống dẫn có thể ngưng hoạt động vì thiếu lưu trữ tạm thời, phụ thuộc dữ liệu và I/O, thiếu sự dự báo như là thiếu sự dự báo brand.)
- Phân tích luồng để quyết định hoạt động luồng và nạp cân bằng cho ánh xạ tới các lõi bộ xử lý.
- PerfMon trên Windows
- Intel® VTune và các công cụ đơn vị giám giát thực thi (PMU) khách dành cho Linux và Windows
Oprofile
cho Linuxpfmon
cho LinuxValgrind
cho Linux, những công cụ này giúp tìm ra các luồng lõi
Loại trừ các tắc nghẽn bộ xử lý cũng giống như việc tránh tắc nghẽn bằng sử dụng kích thước tài nguyên bộ xử lý một cách thích hợp, giảm tải, phân luồng cho các điện toán song song, và hiểu tổ hợp thuật toán bên dưới. Điều này thường yêu cầu phải mã hóa lại các ứng dụng, điều này cần một chi phí lớn. Có lẽ cách đơn giản nhất để cải thiện hiệu quả là kiểm tra với các mức độ tối ưu hóa trình biên dịch mà không thay đổi mức nguồn cao, nhưng kiểm tra hồi quy vẫn rất cần thiết trong trường hợp này. Thay vì phân luồng cho các điện toán song song, các phương pháp khác không dược thiết kế từ đầu cho đồng quy tối đa hay giảm tải (ví dụ, GPUs, TOEs) đối với các hàm, loại trừ các tắc nghẽn bộ xử lý yêu cầu tối ưu hóa mã trình bằng thủ công hay kỹ thuật trình biên dịch.
Các tắc nghẽn bộ nhớ rất phổ biến với nhiều ứng dụng khi chúng không thể khít với lưu trữ tạm thời đặc biệt bởi vì thời gian truy cập của bộ nhớ DRAM ngoài chậm hơn tốc độ xung nhịp của lõi bộ xử lý. Các tắc nghẽn bộ nhớ thường xuất hiện như là các tắc nghẽn bộ xử lý, nhưng bạn có thể phân biệt chúng qua sự định hình, nó cho biết thi hành thiếu hiệu quả của các thuật toán bởi vì các đường ống bộ xử lý ngưng hoạt động do phụ thuộc dữ liệu và vòng chờ trong khi dữ liệu được đưa vào lưu trữ tạm thời
Kiến thức và kỹ năng: Tránh các tắc nghẽn bộ nhớ
Tránh các tắc nghẽn bộ nhớ yêu cầu bộ nhớ cần được nâng cấp không chỉ về dung lượng mà còn về truy cập dải tần tại độ trễ hợp lý. Thêm nữa, ánh xạ tới bộ nhớ vật lý cũng rất quan trọng và thường được cung cấp bởi một hệ thống hoạt động, nhưng nó vẫn cần bạn giám sát cẩn thận.
Công cụ và kỹ thuật: Phát hiện các tắc nghẽn bộ nhớ
Bạn có thể phát hiện các tắc nghẽn bộ nhớ bằng cách chạy ứng dụng và định hình truy cập bộ nhớ và thực thi lưu trữ tạm thời. Nếu bạn không lựa chọn chạy ứng dụng, thì việc chạy một tải trọng truy cập bộ nhớ là một sự lựa chọn thay thế tốt nhất (xem Ví dụ 1). Một cách để thực hiện điều này là truy cập bộ nhớ qua một đĩa RAM, sử dụng các công cụ tạo ra tải trọng I/O được miêu tả trong phần Công cụ và kỹ thuật: Phát hiện các tắc nghẽn I/O, của bài viết này.
Ví dụ 1. Chạy kiểm tra bộ nhớ đĩa RAM trên máy chủ 1RU
# mke2fs -m 0 /dev/ram0 # mount /dev/ram0 /mnt/rd1 # dd if=/dev/zero of=/mnt/ramdisk1/newfile bs=128K count=40 40+0 records in 40+0 records out 5242880 bytes (5.2 MB) copied, 0.00413 seconds, 1.3 GB/s # dd if=/mnt/ramdisk1/newfile of=/dev/null bs=128K count=40 40+0 records in 40+0 records out 5242880 bytes (5.2 MB) copied, 0.001595 seconds, 3.3 GB/s # cd /mnt/ramdisk1 #/usr/bin/iozone -R -s512K -r128k -t 16 -T " Initial Write " 1619525.94 " Rewrite " 1410215.12 " Read " 2124526.50 " Re-read " 2178404.50 " Reverse Read " 2207515.50 " Stride Read " 3196584.25 " Random Read " 2655129.25 " Mixed workload " 2638816.00 " Random Write " 1895721.12 " Pwrite " 1827433.56 " Pread " 2196227.25 |
Kiến thức và kỹ năng: Loại trừ các tắc nghẽn bộ nhớ
Loại trừ các tắc nghẽn bộ nhớ thường bao gồm việc nâng cấp cấu trúc máy chủ và các chipset để giúp hub mạch điều khiển bộ nhớ (MCH) chạy nhanh hơn, kỹ thuật DRAM nhanh hơn, như là, hay việc nâng cấp kích cỡ lưu trữ tạm thời L1/L2/L3 trên cấu trúc máy chủ hiện tại của bạn, nếu thiếu lưu trữ tạm thời sẽ làm quá trình thi hành bị chậm. Trước khi mua thêm lưu trữ tạm thời, bạn cần chắc chắn rằng việc thiếu lưu trữ tạm thời thực sự làm chậm các ứng dụng vì quá trình thi hành không đủ năng lực:
- Sử dụng các công cụ định hình và PMU, như là VTune để phát hiện các điểm thiếu lưu trữ tạm thời.
- Sử dụng cat /proc/meminfo trong Linux để giám sát việc sử dụng.
- Sử dụng lệnh
pmap
vàvmstat
trong Linux. - Sử dụng
valgrind
cho Linux, nó giúp tìm ra các lỗi quản lý bộ nhớ
Về tổng thể, chỉ hệ thống được cân bằng tài nguyên hoàn hảo dành cho tải trọng được xác định tốt và các thuật toán sẽ không có các nút cổ chai: Tất nhiên, không có một hệ thống nào như vậy tồn tại trên thực tế. Vì vậy, các kiến trúc sư hệ thống và các kỹ sư điều chỉnh thực thi cần phải biết các điểm xảy ra tắc nghẽn và sử dụng các công cụ tiên tiến của công nghệ cũng như các công cụ để phân tích thực thi trên nền tảng cơ bản. Việc thay đổi tải trọng thường làm một hệ thống chứa ứng dụng phát triển một điểm tắc nghẽn mới. Việc tăng tải trọng yêu cầu cần xem xét về các lựa chọn biến đổi quy mô hệ thống. Công việc này sẽ không bao giờ kết thúc
Mô tả | Tên | Kích thước | Phương thức tải |
---|---|---|---|
Sample Perfmon config files | perfmon-msc-files.zip | 21KB | HTTP |
Tài nguyên
Học tập
- Xem hai bài báo này trong loạt bài Những bài học lớn — "Phần 3: Giám sát và điều chỉnh thực thi" (Sam Siewert, developerWorks, tháng Tư năm 2005) và "Phần 4: Nguồn điện, làm mát, và sự thực thi: Tìm ra một cân bằng tối ưu" (Sam Siewert, developerWorks, tháng Năm năm 2005)— để xem chi tiết về các công cụ và kỹ thuật tối ưu hóa mã trình nhằm giải quyết các tắc nghẽn bộ xử lý và để biết thêm thông tin về vấn đề tài nguyên nguồn điện.
- Đọc bài, "Tổng quan đĩa RAM trong Linux (initrd)" (M. Tim Jones, developerWorks, tháng Sáu năm 2006) để biết thêm thông tin về sử dụng đĩa RAM trong in Linux.
- Truy cập Điều chỉnh Thực thi Hệ thống, ấn bản lần thứ hai (Gian-Paolo Musumeci và Mike Loukides, O'Reilly, 2002) để có những hướng dẫn chi tiết về điều chỉnh các hệ thống và ứng dụng Linux chạy trên Linux.
- Giải thích Mạng Lưu trữ—Cơ bản về Ứng dụng Fibre Channel SAN, NAS, iSCSI và Infiniband (Ulf Troppens, Rainer Erkens, và Wolfgang Müller, Wiley, 2004) là một Hiệp hội Công Nghiệp Mạng Lưu trữ (SNIA) được đề nghị đọc và một giới thiệu chi tiết về I/O thực thi cao và các hệ thống lưu trữ
- Điều chỉnh Thực thi dành cho các Máy chủ Linux (Sandra K. Johnson, Garrit Huizenga, và Badari Pulavarty, IBM Press, 2005) cung cấp thông tin chi tiết về phân tích thực thi, phương pháp điều chỉnh, và máy phát điện tải trọng.
- Để biết thêm thông tin chi tiết về tắc
nghẽn trong các hệ thống thời gian thực, hãy truy cập các bài viết sau
trên developerWorks:
- "SoC drawer: Tổng quan tài nguyên" (Sam Siewart, tháng Mười năm 2005)
- "SoC drawer: Quản lý tài nguyên thời gian thực" (Sam Siewert, tháng Một 2006)
- Để nghiên cứu sâu hơn về luật Moore, đọc Wikipedia.
- Truy cập hiệu sách kỹ thuật để có những quyển sách về chủ đề này và các chủ đề kỹ thuật khác.
- Lấy liên kết RSS cho loạt bài viết này.
- Hãy truy cập trang Web OProfile để biết thông tin về các công cụ phân tích định hình dành cho Linux.
- Hãy truy cập trang Web SYSSTAT để biết thông tin về các công cụ phân tích thực thi dành cho Linux.
- Truy cập trang Netperf để tạo ra các tải trọng mạng trên Linux.
- Xem bài viết PerfMon trên Microsoft TechNet và Adminfoo.net để biết thêm thông tin về PerfMon.
- Truy cập trang IOzone để tạo ra các tải trọng lưu trữ trên Linux.
- Truy cập trang Wireshark để có thông tin về công cụ phân tích mạng dành cho Linux hay Windows.
- Truy cập trang Iometer để có thông tin chi tiết về máy phát điện tải trọng I/O làm việc tốt với các hệ thốn tệp và ổ đĩa vật lý Windows.
- Một số tùy chọn dành cho biến đổi quy mô PCI-e thông qua các khóa chuyển đổi, bao gồm IDT, PLX, và NextIO.
- Truy cập trang Valgrind để biết thông tin về bộ nhớ và các công cụ gỡ lỗi và phân tích dành cho Linux.
- Truy cập Atrato v1000 Atrato v1000 sử dụng IBM System x3650 để cung cấp các tùy chọn I/O SAN và NAS với tốc độ thực thi cao.
- IBM rất nhiều sản phẩm cổng NAS và một lượng lớn dãy đĩa lưu trữ SAN để giúp loại trừ tắc nghẽn I/O và biến đổi quy mô hệ thống.
- STREAM là một công cụ rất hữu ích trong việc phát hiện các tắc nghẽn bộ nhớ
- Tải xuống các sản phẩm phiên bản dùng thử của IBM và các công cụ để phát triển ứng dụng của bạn và các sản phẩm trung gian từ DB2®, Lotus®, Rational®, Tivoli®, và WebSphere®.
- Truy cập blog developerWorks và tham gia vào cộng đồng developerWorks.
Tiến
sĩ Sam Siewert là một kiến trúc sư phần mềm và hệ thống, ông đã từng
làm việc trong các ngành công nghiệp hàng không vũ trụ, viễn thông, cáp
số, và lưu trữ. Ông cũng giảng dạy Chương trình Chứng chỉ về Hệ thống
Nhúng (Embedded Systems Certification Program) tại trường đại học
Colorado ở Boulder. Những nghiên cứu của ông chủ yếu thuộc các lĩnh vực:
điện toán hiệu năng cao (HPC), mạng băng thông rộng, truyền thông thời
gian thực, môi trường học từ xa, và các hệ thống nhúng thời gian thực
0 comments
Post a Comment