Phần 1: Xây dựng một kiến trúc cơ sở hạ tầng tin cậy giá rẻ

Các chữ như là doanh nghiệp,kiến trúc, và cơ sở hạ tầng nghe có vẻ to lớn và đắt đỏ với các doanh nghiệp nhỏ. Thực ra thì, các doanh nghiệp nhỏ (đó là, các tổ chức với 50 người hoặc ít hơn) vẫn cần phần cứng tin cậy để chạy những hệ thống nghiệp vụ quan trọng của họ.

Không giống như những đối thủ khổng lồ, các doanh nghiệp nhỏ phải thường xuyên làm việc nhiều hơn với ít tài nguyên hơn. Việc suy nghĩ đổi mới được yêu cầu để làm vậy có thể cung cấp nhiều cơ hội cho việc phát triển một cơ sở hạ tầng lớn và phức tạp với chi phí thấp một cách tương ứng. Ví dụ, bằng cách tái sử dụng thiết bị cũ và tận dụng lợi ích của phần mềm mã mở, những tổ chức nhỏ này có thể xây dựng các môi trường giàu tính năng mà có thể so được với các hệ thống tương ứng của các doanh nghiệp đối thủ của họ.

Chỉ bởi vì cơ sở hạ tầng của bạn không đắt giá không có nghĩa là nó không đáng tin cậy. Với các lựa chọn được mở rộng của phần mềm mã mở và phần cứng hạ giá, câu hỏi xác đáng hơn có lẽ là, “Có phải các doanh nghiệp đang trả quá nhiều?”

Bằng cách bỏ thời gian để xem xét những gì bạn có, muốn, và cần, bạn có thể tối ưu hóa tài chính có sẵn của bạn. Khám phá những gì bạn thực sự cần, tái sử dụng phần cứng khi có thể, và mua từ các nhà cung cấp của bạn với giá rẻ.

Xem xét những gì bạn đang cố gắng để đạt được trong kiến trúc của bạn cũng như những gì mà khả năng tài chính của bạn sẽ cho phép. Nó giúp để hiểu theo quan điểm nhu cầusự cần thiết, và sự mong muốnNhu cầu là điều bắt buộc thiết yếu. Sự cần thiết là các nhu cầu cơ bản nhưng chắc chắn hơn. Sự mong muốn là giới hạn mà bạn có thể tưởng tượng và nó có thể thực hiện được. Ngoài ra còn có mơ ước, cái mà công nghệ chưa đạt đến được.

Ví dụ, vấn đề của bạn là đói bụng. Bạn cần một thanh kẹo, nó đưa ra một giải pháp nhanh và rẻ cho vấn đề của bạn. Bạn muốn một cái bánh hem-bơ-gơ, nó giải quyết vấn đề của bạn tốt hơn so với thanh kẹo. Bạn mong muốn một bữa ăn tối với thịt nướng, cái mà giải quyết hoàn toàn vấn đề của bạn nhưng chi phí chắc chắn là cao hơn so với thanh kẹo hoặc bánh hem-bơ-gơ.

Theo thuật ngữ công nghệ thông tin, vấn đề của bạn là một máy chủ chậm chạp, lỗi thời với không gian lưu trữ khiêm tốn. Bạn cần một máy chủ mà có thể lưu trữ được các tệp lớn; vậy, theo thuật ngữ cơ bản, một máy tính để bàn với một ổ đĩa cứng lớn là tối thiểu. Bạn muốn phần cứng cỡ máy chủ với dãy thừa thãi các ổ đĩa độc lập (RAID) và một hệ điều hành ổn định. Bạnmong muốn một máy chủ với nhiều bộ xử lý với dung lượng 8TB và được phân cụm. Rõ ràng rằng, giá cho một chiếc máy tính để bàn hoạt động với vai trò của một máy chủ có một số thỏa hiệp, nhưng giá quá cao của một máy chủ cấp cao cần phải cân nhắc. Ước mơ của bạn là nó sẽ được cài đặt và duy trì bởi con robot giống con người một chút, nhưng IBM chưa phát triển.

Bây giờ, tạo một danh sách các thứ trong cơ sở hạ tầng của bạn mà bạn muốn thay đổi. Có thể bạn cần nhiều không gian lưu trữ hơn. Có lẽ bạn muốn một cách để lưu trữ tạm thời lưu lượng Web. Có phải bạn đang tìm một cách để giảm chi phí cho bản quyền phần mềm? Khi bạn hoàn tất danh sách của bạn, hãy gắn các giá trị vào những lựa chọn của bạn. Quyết định những gì có thể được đáp ứng với một nhu cầu, sự cần thiết, hoặc mong muốn cao cấp, và chuẩn bị để dàn xếp. Ví dụ, để mua một máy chủ dựa trên ngôn ngữ truy vấn có cấu trúc vượt trội mà là cấp thiết cho việc đặt hàng trực tuyến, bạn sẽ phải sử dụng một máy tính để bàn như là một máy chủ kiểm thử thay vì một phần cứng máy chủ được dựng lên cho việc phát triển ứng dụng.

Nhiều thứ mà bạn cần để xây dựng một cơ sở hạ tầng chắc chắn có thể nằm trong trung tâm dữ liệu của bạn. Bằng cách tái sử dụng phần cứng có sẵn cho các nhu cầu cấp thấp, bạn có thể tiết kiệm tiền cho các thiết bị mới và tốt hơn. Thiết bị cũ hơn có thể thoả mãn cho các thành phần cấp thấp như là thiết bị kiểm thử. Việc cài đặt các nâng cấp giá rẻ, như là bộ nhớ và các đĩa cứng, có thể tăng hiệu suất một cách đáng kể.

Việc tạo một kho đầy các máy tính và các bộ phận sẽ rất thuận tiện khi bạn muốn thêm các phần để xây dựng một cơ sở hạ tầng tốt hơn. Ví dụ, bạn có hai máy chủ tương tự về bộ xử lý, RAM, và dung lượng ổ đĩa cứng. Bộ nhớ có thể chuyển từ máy chủ thứ nhất sang máy chủ thứ hai, và các ổ đĩa cứng có thể được sử dụng để tạo một mảng RAID tách biệt.

Rõ ràng rằng, thiết bị cũ hơn có thể có vấn đề về độ tin cậy mà nó rất khó giải quyết, bởi vì chúng hết hạn bảo hành. Việc tìm kiếm các phần để thay thế có thể là một vấn đề nếu dòng sản phẩm không được duy trì. Khá nhiều các ứng dụng kiểm thử phần cứng miễn phí hoặc ít tiền có sẵn để tải về: Hãy dùng chúng để tìm phần cứng phù hợp.

Thêm nữa, một vài nhà cung cấp đưa ra các bảo hành kéo dài giá rẻ với một mức phí tượng trưng. Điều này có thể hữu ích nếu bạn lo lắng về hỏng hóc trầm trọng.

Đôi khi, thương vụ tốt nhất có thể được tìm thấy ở chỗ không thông thường.

Hãy hỏi người đại diện bán hàng của nhà cung cấp của bạn xem anh ta hay chị ta có thể tìm cho bạn một thương vụ tốt mà không được đăng trên trang Web của nhà sản xuất. Những người này có kiến thức về thiết bị bị trả lại, các sản phẩm bị dừng sản xuất, và hạn mức bán hàng cuối quý mà có thể tiết kiệm cho bạn hàng trăm, thậm chí hàng ngàn đô la.

Các thiết bị bị trả lại không có nghĩa là các thiết bị bị hỏng. Sản phẩm có thể bị gửi nhầm. Thiết bị bị đánh dấu như “trầy xước và méo mó” có thể cần sự gạn lọc những gì bị hỏng hóc. Trong hầu hết các trường hợp, sự hỏng hóc xuất hiện tại một số điểm trong khi vận chuyển sản phẩm và có thể là bất cứ thứ gì từ một vết trầy xước nhẹ trên bề mặt tới cái gì đó mà giống như trò chơi ghép hình.

Một nguồn khác để tìm kiếm là các nhà môi giới thị trường phần cứng. Trang các sản phẩm của IBM có những thương vụ cực lớn với thiết bị rất cao cấp mà có thể nằm ngoài tầm với của bạn. Điều tích cực nhất là hầu hết các sản phẩm ở đây đều có dịch vụ bảo hành của IBM. IBM cũng đưa ra một phân loại rộng các hệ thống được sử dụng và được chứng nhận với giá được giảm rất nhiều. Mặc dù lợi ích tài chính để mua sắm trên thị trường là cao, bạn có thể cần dàn xếp với sự tùy biến và các lựa chọn. Ví dụ, bạn có thể tìm thấy một máy chủ mà đáp ứng tất cả các yêu cầu của bạn nhưng lại không có cạc RAID.

Hãy chuẩn bị để quyết định nhanh với những sản phẩm giảm giá này. Bởi vì bạn đang giao dịch với số lượng bị hạn chế, với 10 sản phẩm mà nhà cung cấp có trong kho có thể bị nuốt mất trong nháy mắt. Bởi vì nhà cung cấp đang cố gắng thanh lý kho một cách nhanh chóng, người đại diện bán hàng của bạn có thể không có khả năng để giữ chỗ cho bạn trong khi bạn cân nhắc.

Các trang đấu giá trực tuyến có thể có những thương vụ lớn cho thiết bị mới và được tân trang lại, nhưng những trang này chứa nguy cơ tiềm ẩn. Đầu tiên, bạn có khả năng thất bại khi tham gia đấu giá, sau đấy bạn phải bắt đầu quá trình tìm kiếm lại từ đầu. Thứ hai, thiết bị mà bạn mua có thể không hoạt động và có thể không có bảo hành của nhà sản xuất. Trước khi bạn đấu giá, hãy kiểm tra để có được một số thông tin cơ bản của người bán, như mức độ hài lòng từ đánh giá của người mua khác. Gạn lọc người bán — bằng văn bản — xem có bảo đảm gì không. Nếu việc mua bán không nghiêm như mong đợi, hãy yêu cầu người bán đảm bảo sản phẩm hoạt động. 

Bắt đầu xây dựng cơ sở hạ tầng mới của bạn bằng cách sử dụng công nghệ được chứng minh miễn phí hoặc giá rẻ. Phần mềm mã mở có một bản theo dõi về tính tin cậy và bảo mật đã được chứng mình và có thể làm việc tốt như — và đôi khi tốt hơn — các phần mềm thương mại tương ứng.

Các lựa chọn tốt nhất cho kiến trúc hạn hẹp về tài chính nằm trong cộng đồng mã mở. Bởi vì phần mềm mã mở thường miễn phí, bạn có thể tiết kiệm tiền cho việc cấp phép phần mềm so với các sản phẩm độc quyền.

Có lẽ thành viên cộng đồng mã mở lớn nhất là Linux®. Sẵn sàng với các thương hiệu và phiên bản khác nhau, Linux đủ mạnh để xử lý các cơ sở dữ liệu lớn và được phân cụm nhưng cũng đủ đơn giản để thực thi một trang Web nhỏ. Một lựa chọn mã mở phổ biến khác là OpenOffice.org. OpenOffice.org cung cấp một bộ đầy đủ các phần mềm hiệu quả mà có thể so sánh được với Microsoft® Office và sẵn sàng cho hầu hết các hệ điều hành, bao gồm Microsoft Windows® và Apple Mac OS X.

Vấn đề lớn nhất với các công cụ mã mở có thể là thiếu hỗ trợ. Một số nhà sản xuất phần mềm mã mở lớn — ví dụ như Red Hat — cung cấp sự hỗ trợ miễn phí qua điện thoại, nhưng nó không khác thường khi mà người quản trị hệ thống tìm kiếm các bảng thông báo trên Internet cho một giải pháp cho các vấn đề cụ thể của họ. Một vấn đề khác mà bạn có thể gặp với các sản phẩm mã mở là khối lượng mã kịch bản hoặc tùy biến mà bạn có thể cần thực hiện để làm cho nó hoạt động với kiến trúc của bạn. Những nhà quản trị mà thiếu kỹ năng lập trình hoặc viết mã kịch bản có thể cảm thấy e ngại với những công cụ này.

Với những gì bạn đã đọc đến bây giờ, hãy áp dụng nó vào một tình huống giả định. Trong công ty nhỏ với 40 nhân công của bạn, trung tâm dữ liệu gồm một bộ bốn máy chủ đơn giản, một kết nối Internet, và một bộ định tuyến mạng hoặc tường lửa và một bộ chuyển mạch (switch). Ba máy chủ sử dụng các hệ điều hành máy chủ của Microsoft, một trong số đó dành cho Microsoft Active Directory, cái khác dành cho Microsoft Exchange Server, và cái thứ ba để lưu trữ tệp. Máy chủ còn lại cài Linux và nằm trong khu vực phi quân sự (DMZ) của mạng.

Bây giờ, hãy thêm không gian gian đĩa, một bộ lưu trữ tạm thời Web, và phần mềm trợ giúp, và hãy xem có thể bạn có thể giải quyết trong phạm vi tài chính như thế nào.

Bắt đầu với không gian đĩa cho dữ liệu của các phòng ban, bạn có một số lựa chọn. Đầu tiên, tìm phần cứng mà có rất nhiều không gian đĩa. Mất 10 phút để thương thảo với đại diện bán hàng của IBM bạn sẽ có một máy chủ với RAID có sẵn nhưng không có đĩa. Thật may là, họ cũng có một số đĩa không được tiếp tục phát triển mà họ sẵn sàng bán với giá rẻ hơn.

Để giúp giảm giá hơn nữa, hãy sử dụng một hệ điều hành mã mở thay vì một sản phẩm thương mại từ công ty nào đó như Microsoft. Bằng cách này, bạn không phải trả tiền bản quyền. Sử dụng một bản phát hành miễn phí của Linux, bạn có thể tạo một máy chủ tệp mà có thể truy cập được từ các máy trạm Windows thông qua Samba. Nhưng, bởi vì tất cả những gì bạn muốn là một máy chủ tệp không rườm rà, hãy chọn FreeNAS. FreeNAS là một hệ thống lưu trữ kết nối với mạng mà cài đặt và quản lý dễ dàng — và miễn phí. FreeNAS cũng hoạt động với Active Directory để gán quyền truy cập tới các tệp.

Squid-Cache là một ứng dụng trên Linux mà có thể giúp giảm căng thẳng trên băng thông của bạn và giúp bạn quản lý lượng truy cập Internet của nhân viên trong khi làm việc. Sử dụng một máy chủ ủy nhiệm (proxy) để lưu trữ tạm thời lưu lượng Web từ các trang người dùng phổ biến có thể giảm băng thông Internet cho khách hàng. Với Squid-Cache, bạn có thể tạo các báo cáo về các trang mà người dùng đang truy cập và tạo các bộ lọc để ngăn chặn nội dung không mong muốn hoặc không chuyên nghiệp.

Phần cứng mà bạn chạy phần mềm này sẽ là một máy chủ giá rẻ mà đã được trang bị với một đĩa cứng mở rộng và nhiều bộ nhớ hơn; nó sẽ chạy hệ điều hành Linux. Cài đặt một máy tính để bàn giống như một máy chủ, và để nó trong phòng lạnh như một thiết bị dự phòng khi gặp sự cố cho máy chủ.

Trong một công ty nhỏ như vậy, mọi người chỉ gọi người mà họ biết rõ nhất để giúp họ. Khi công ty phát triển và kiến trúc IT trở lên phức tạp hơn, các bộ phận của nó sẽ chồng chéo lên nhau. Các vấn đề phải được ghi dấu một cách tập trung sao cho tất cả các thành viên trong đội IT có thể biết các vấn đề với các hệ thống và các ứng dụng.

Spiceworks là một công cụ tốt mà các doanh nghiệp nhỏ có thể sử dụng để điều khiển mạng, kiểm kê phần cứng và phần mềm của họ, và tạo các vé hỗ trợ. Từ việc cài đặt, Spiceworks bắt đầu quét mạng của bạn và tạo một báo cáo những gì nó thấy. Việc điều chỉnh công cụ để đáp ứng nhu cầu của công ty tốn thời gian nhưng xứng đáng. Bạn có thể cài Spiceworks trên máy để bàn của bạn nhưng hãy sử dụng không gian của máy chủ dành riêng cho các tệp dùng chung.

Đó! Bạn đã hoàn thành tất cả các mục đích ban đầu và đã chỉ phải chi một phần nhỏ ngân sách của bạn.Phần 2: 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

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ữ.

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.

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.

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 

Tải trọngKB/s
Ghi lần đầu17476.48
Ghi lại17407.94
Đọc lại6595.88
Đọc Ngẫu nhiên6080.07
Ghi Ngẫu nhiên9378.40

Các công cụ hữu ích khác để điều khiển I/O hay mạch điều khiển mạng và phân tích kết quả:

  • 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ễ.

Tôi không trình bày chi tiết các công cụ này ở đây, nhưng tất cả các công cụ này đều dễ nghiên cứu và sử dụng. Khả năng điều khiển I/O tới lưu trữ hay các giao diện mạng và để tập hợp và phân tích lưu lượng I/O, tất cả những điều này đều rất cần để phát hiện ra 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.

Lựa chọn SSD nói chung bao gồm cả đĩa RAM và đĩa flash. Cả hai chi phí rất đắt nhưng tất nhiên chúng cung cấp sự thực thi tối ưu với một dung lượng rất nhỏ. Hiện nay, nhiều nhà cung cấp đã đưa ra các sản phẩm SSD. Thực thi chính xác nhưng chi phí trên một gigabyte ít nhất cũng cao gấp 10 đến 20 lần so ổ đĩa quay. Đĩa RAID tất nhiên có giới hạn, nhưng 16 trục quay có thể loại trừ tắc nghẽn lưu trữ I/O cho nhiều ứng dụng cần tới hàng trăm megabyte để thực thi. Đối với những ứng dụng cần tới hàng gigabyte để thực thi, thì sự lựa chọn tốt nhất là SAN hay NAS. Ở đây, bạn có rất nhiều lựa chọn, nhưng một trong những lựa chọn tốt nhất là thừa số biểu mẫu nhỏ, dãy đĩa dày như là Atrato v1000 (xem Tài nguyên), nó sử dụng một mạch điều khiển IBM System x3650. 

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.

Thêm các tài nguyên bộ xử lý bằng cách thêm các bộ xử lý đa lõi. Việc này giúp các ứng dụng được phân luồng và các hệ thống hoạt động máy chủ có thể cân bằng nạp qua nhiều lõi khác nhau: Điều này rất phổ biến hiện nay. Bạn có thể tối ưu hóa bằng cách sử dụng các công cụ định hình, nhưng thường thực hiện như vậy đòi hỏi người phát triển phải mất nhiều thời gian để mã hóa lại các ứng dụng và kiểm tra hồi quy sau khi kết thúc tối ưu hóa. Đưa thêm các lõi bộ xử lý vào các điểm tắc nghẽn thường là phương pháp đơn giản nhất, nhưng nó sẽ làm tăng lượng tiêu thụ điện. Phương pháp trước đây là nâng cấp tốc độ xung nhịp bộ xử lý không tạo được hiệu quả vì nó tiêu tốn điện lớn, tỏa nhiệt nhiều, và những vấn đề thiết kế phần cứng không đáp ứng tốc độ GHz. Phần này đề cập các công cụ định hình để tối ưu hóa mã trình và luồng đa lõi. Các máy chủ giảm tải với các động cơ giảm tải I/O như là TOE cũng là một lựa chọn đáng để xem xét.

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:

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.

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ý.

Bởi vì các công cụ cho những phương pháp này đã được đề cập chi tiết trong các bài viết khác, nên tôi chỉ cung cấp danh sách những công cụ thường được dùng:

  • 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 Linux
  • pfmon cho Linux
  • Valgrind 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

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.

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.

# 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

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ớ

Phần 3: Các phương pháp thiết kế hệ thống dành cho quy mô có thể thay đổi

Việc thay đổi quy mô thường được coi như là một khả năng mở rộng dịch vụ, tăng sự truy cập vào dữ liệu, hoặc thêm tải máy khách. Khả năng xử lý nhiều máy khách hơn bằng cách cung cấp nhiều dịch vụ hơn và tăng khả năng truy cập dữ liệu thường đạt được thông qua việc sử dụng các máy chủ có khả năng thay đổi tốc độ xử lý, tốc độ vào/ra, bộ nhớ và kho lưu trữ. Nhưng bài viết này, bài thứ ba trong loạt bài kiến trúc cơ sở hạ tầng, chỉ chú ý đến những kiến trúc thay thế và tính toán làm thế nào để quy mô có thể thay đổi phù hợp với các mẫu mới giống như các điện toán lưới và điện toán đám mây.

Các tổ chức thường bỏ qua các phí tổn về chi phí vận hành liên quan đến sự thay đổi qui mô, bao gồm các phí tổn về năng lượng, sự làm mát và không gian đặt hệ thống. Hơn nữa, việc chuẩn bị chu đáo cho quy mô có thể giúp chúng ta loại trừ được lỗi vào/ra, bộ vi xử lý, hoặc tắc nghẽn lưu trữ — là chủ đề của bài viết thứ hai trong loạt bài viết này. Nguồn tài nguyên như năng lượng chẳng hạn sẽ không được đề cập đến trong bài này, nhưng phần Tài nguyên cung cấp nhiều liên kết tới các chủ đề chứa nhiều thông tin hơn về vấn đề này. Sự thay đổi qui mô ở những mô hình cao hơn mô hình máy chủ/ máy khách yêu cầu một chiến lược bao gồm các kỹ thuật phân cụm (clustering) (bao gồm cả bộ xử lý và hệ thống tập tin), điện toán lưới, và điện toán đám mây và thường được xác định trên các ràng buộc mức cao nhất bởi các dịch vụ Internet phổ dụng mà có thể đáp ứng nhanh nhất các nhu cầu thay đổi chung.

Điểm lưu ý đầu tiên của bài viết là dựa trên kế hoạch dài hạn để xác định quy mô và chiến lược thay đổi càng gần tuyến tính và vô hạn càng tốt. Điểm thứ hai, bài viết xem xét mỗi tài nguyên phục vụ dành cho cấp độ máy chủ, các cụm máy, điện toán lưới, và phần mềm điện toán đám mây giống như một dịch vụ; và phần cứng giống như quy mô phục vụ (service scaling), bao gồm cả bộ vi xử lý, thiết bị vào/ra, bộ nhớ và lưu trữ, và chiến lược để cân bằng và phân mức nó. Các tiềm năng theo chiều rộng và chiều sâu của chiến lược quy mô tổng quát cho các máy chủ, các cụm, lưới, và điện toán đám mây là rất rộng lớn, nhưng bài viết này cung cấp các ví dụ cụ thể cũng như các điểm chi tiết hơn để bạn có thể giải quyết vấn đề khó khăn trên các hệ thống lớn ở mức cơ sở hạ tầng.

Một hệ thống quy mô tuyến tính đòi hỏi một khả năng tính toán nút, như là một hệ thống máy chủ IBM ® System x® hoặc hệ thống BladeCenter®, cung cấp quy mô đa xử lý đối xứng (SMP) cho bộ xử lý hoặc bộ nhớ đi đôi với quy mô có đủ thiết bị vào/ra cho phân cụm máy, mạng lưu trữ, quản trị, và mạng truy cập máy khách. Trong khi mong đợi sự ra đời của các hệ thống có qui mô có thể thay đổi lớn hơn cho phép phạm vi và khả năng truy cập máy khách rộng hơn, điều quan trọng nhất là cần thiết kế một cách cẩn thận cho sự mở rộng của các hệ thống lưu trữ con và hệ thống tính toán cơ bản:

  • Qui mô có thể thay đổi theo phân cấp: Trung tâm điện toán đám mây bao gồm các lưới điện toán, các cụm tính toán hiệu năng cao, hoặc các máy phục vụ SMP với các truy cập từ máy khách ở bất cứ cấp độ nào.
  • Kiến trúc hướng dịch vụ (Service-Oriented Architecture – SOA): Xem xét cẩn thận sự kết hợp giữa việc tính toán và việc truy cập dữ liệu cho các ứng dụng cùng với các mạng truy cập máy khách.
  • Mạng phân cụm kết nối tốc độ cao (High speed interconnect – HSI): Những mạng giống như Infiniband, Myranet, and 10GE.
  • Khả năng mở rộng dung lượng truy cập thông qua một mạng lưu trữ khu vực (SAN):kênh Fibre 8G, giao diện hệ thống điện toán Internet (iCSI) trên Infiniband hoặc 10GE, hoặc kênh Fibre trên Ethernet/hội tụ các bộ kết hợp mạng (FCoE/CNA) và giao thức làm giảm tải giao diện truyền tải máy chủ.
  • Các nút điện toán SMP: Các nút cùng với bộ xử lý, bộ nhớ, và phần mở rộng kênh vào/ra (I/O) cho lưu trữ, kỹ thuật phân cụm, quản trị, và mạng máy khách.
  • Hệ thống tệp tin có thể thay đổi: Phần đầu hoặc cổng vào của mạng lưu trữ truy cập được thiết kế song song với hệ thống tệp tin với quy mô dung lượng và số lượng của các máy khách cùng với hệ thống tệp tin mạng (NFS) các công nghệ giao thức giống như việc truy cập bộ nhớ từ xa (RDMA).
  • Nhân tố xanh: siêu năng lượng, làm mát, và mật độ giá đặt máy của một hệ thống con sẽ được lựa chọn.
  • Quy mô Geo (Geo-scaling): Sử dụng bộ chuyển đổi kết nối tới cáp tối (dark fiber) với công nghệ truyền dẫn quang năng (DWDM) bằng phân chia bước sóng thêm và bớt các bộ đa hợp

Như đã chỉ ra trong Hình 1, các hệ thống có thể thay đổi từ các máy điện toán khách đơn giản đến các máy phục vụ SMP. Máy điện toán khách kết nối tới các cụm của máy phục vụ SMP – các cụm có thể chia và trị bằng các thuật toán, với sức mạnh tính toán được cho trước. Các cụm của máy chủ SMP có thể tương tự như các dịch vụ được cung ứng đồng thời cho các hệ thống lưới điện toán. Được dựa trên điện toán lưới và điện toán phân cụm, các dịch vụ điện toán đám mây được tập trung hóa trên internet phát triển rất nhanh. Điện toán mây có thể đơn giản như là sự chia sẻ lịch biểu và không yêu cầu các cụm HPC, nhưng sau đó thì, các truy cập đến HPC qua Internet sẽ trở thành mối bận tâm đang gia tăng trên cả hai phương diện học thuật lẫn lĩnh vực điện toán thương mại (xem Tài nguyên). Các cụm và máy chủ SMP trong mạng lưới điện toán cần phải tự thay đổi được về bộ xử lý, cổng vào/ra (I/O), bộ nhớ và truy cập lưu trữ để chúng có thể điều tiết các mục đích cho các dịch vụ trong trung tâm mạng lưới điện toán hoặc trung tâm điện toán đám mây. Có lẽ, cách tốt nhất để bắt đầu là đặt một loạt câu hỏi về việc thay đổi quy mô, ví dụ:

  • Có thể mở rộng bộ xử lý