Các tài nguyên mà một VPS đƣợc phân bổ có thể đƣợc định nghĩa bởi các tham số điều khiển tài nguyên hệ thống. Các tham số này đƣợc chia làm 3 loại: sơ cấp, thứ cấp và tham số phụ trợ. Các tham số chính là điểm khởi đầu cho việc tạo một cấu hình VPS từ bản nháp. Các tham số thứ cấp phụ thuộc vào các tham số sơ cấp và đƣợc tính toán theo một tập các ràng buộc. Các tham số phụ trợ giúp cải thiện sự cô lập lỗi giữa các ứng dụng trong một và cùng một VPS và cách xử lý các sai sót và tiêu thụ tài nguyên. Chúng cũng giúp thi hành các chính sách trên VPS bằng cách hạn chế các nguồn lực theo yêu cầu của một ứng dụng và ngăn chặn các ứng dụng chạy trong VPS. Dƣới đây là danh sách các tham số điều khiển tài nguyên hệ thống. Các tham số bắt đầu bằng “num” đƣợc đo bằng số nguyên, các tham số kết thúc bởi “buf” hay “size” đƣợc đo bằng byte. Các tham số chứa “page” trong tên của nó thì đƣợc đo bằng 4096-byte (Kiến trúc IA32). Cột file chỉ ra tham số hệ thống đƣợc định nghĩa trong tệp tin cấu hình VPS tƣơng ứng (V). Các tham số này đƣợc mô tả cụ thể ở bảng 5 (tham số sơ cấp), bảng 6 (tham số sơ thứ cấp) và bảng 7 (tham số phụ trợ) dƣới đây:
42
Bảng 5. Tham số sơ cấp
Tham số Mô tả File
avnumproc Số lƣợng trung bình các tiến trình và luồng V numproc Số lƣợng tối đa các tiến trình và luồng mà một VPS có
thể tạo V
numtcpsock
Số lƣợng socket TCP, tham số này giới hạn số lƣợng kết nối TCP, số lƣợng khác hàng mà máy chủ ứng dụng có thể xử lý song song
V
numothersock
Số lƣợng các socket khác với socket TCP, các socket nội bộ đƣợc sử dụng cho truyền thông bên trong hệ thống. Socket UDP đƣợc sử dụng trong truy vấn tên miền (DNS) chẳng hạn. UDP và các socket khác cũng có thể đƣợc sử dụng trong một vài ứng dụng đặc biệt (tác tử SNMP và một số cái khác)
V
vmguarpages
Việc đảm bảo cấp phát bộ nhớ trong các trang ( một trang tƣơng ứng 4Kb). Ứng dụng đƣợc đảm bảo để có thể cấp phát bộ nhớ bổ sung giống nhƣ dung lƣợng của bộ nhớ privvmpages (xem tham số phụ trợ) không vƣợt quá giá trị của tham số vmguarpages. Nếu vƣợt quá giá trị trên, việc bổ sung cấp phát bộ nhớ sẽ không đảm bảo và có thể thất bại trong trƣờng hợp thiếu bộ nhớ tổng thể.
43
Bảng 6. Tham số thứ cấp
Tham số Mô tả File
kmemsize Kích thƣớc của bộ nhớ trao đổi phân bố cho các cấu trúc hạt nhân nội bộ cho các tiến trình của một VPS cụ thể. V
tcpsndbuf
Tổng kích thƣớc của bộ đệm gửi cho TCP socket, tức là số lƣợng bộ nhớ hạt nhân đƣợc phân bổ cho các dữ liệu gửi từ một ứng dụng cho một socket TCP, nhƣng không xác nhận dữ liệu từ xa gửi tới.
V
tcprcvbuf
Tổng kích thƣớc của bộ đệm nhận đƣợc từ TCP socket, tức là số lƣợng bộ nhân đƣợc phân bổ cho các dữ liệu nhận đƣợc từ xa nhƣng không đọc đƣợc các ứng dụng nội bộ đƣợc nêu ra.
V
othersockbuf Tổng kích thƣớc bộ đệm của socket Unix-domain, UDP và các giao thức gửi bộ đệm datagram khác V dgramrcvbuf Tổng kích thƣớc bộ đệm nhận của UDP và các giao thức
datagram khác V
oomguarpages
Việc kiểm soát tràn bộ nhớ trong các trang. Bất kỳ tiến trình trong VPS sẽ không bị ngắt ngay cả trong trƣờng hợp thiếu bộ nhớ nếu bộ nhớ hiện tại (bao gồm cả bộ nhớ vật lý và bộ nhớ trao đổi) chƣa đạt tới ngƣỡng oomguarpages
44
Bảng 7. Tham số phụ trợ
Tham số Mô tả File
lockedpages Bộ nhớ không đƣợc phép tráo đổi (khóa với hàm mlock()
của hệ thống) trong các trang V
shmpages Tổng kích thƣớc của bộ nhớ chia sẻ (gồm IPC, chia sẻ ánh xạ ẩn danh, và đối tƣợng tmpfs) V
privvmpages
Kích thƣớc riêng của bộ nhớ đƣợc cấp phát bởi một ứng dụng. Các bộ nhớ luôn luôn đƣợc chia sẻ giữa các ứng dụng khác nhau không bao gồm các tham số tài nguyên
V
numfile Số lƣợng các file đƣợc mở bởi tất cả các tiến trình VPS V numflock Số lƣợng các file khóa đƣợc tạo ra bởi tất cả các tiến trình
VPS V
numpty Số lƣợng các thiết bị đầu cuối, chẳng hạn nhƣ một phiên ssh, màn hình hay các ứng dụng xterm, vv… V numsiginfo Số lƣợng các cấu trúc siginfo (thực chất tham số này giới
hạn kích thƣớc của hàng đợi phân phối tín hiệu V dcachesize Tổng kích thƣớc của dentry và các cấu trúc inode đã khóa
trong bộ nhớ V
physpages
Tổng kích thƣớc của RAM đƣợc sử dụng bởi các tiến trình VPS. Đây là một bộ đếm chỉ số hiện tại. Nó hiển thị dung lƣợng RAM đƣợc sử dụng bởi VPS. Đối với các trang bộ nhớ đƣợc sử dụng bởi các VPS khác nhau (ví dụ ánh xạ của thƣ viện chia sẻ) chỉ có các phần tƣơng ứng của một trang đƣợc tính cho mỗi VPS. Tổng số các physpages sử dụng cho tất cả các VPS tƣơng ứng với tổng số trang đƣợc số trang đƣợc sử dụng trong hệ thống của tất cả ngƣời dùng.
V
45
Ta có thể sửa đổi bất kỳ các tham số trong tệp tin /etc/sysconfig/vz- scripts/vpsid.conf của VPS tƣơng ứng bằng các trình soạn thảo, hoặc bằng cách chạy lệnh vzctl set, ví dụ:
# vzctl set 101 --kmemsize 2211840:2359296 --save Saved parameters for VPS 101
a.Hệ thống giám sát tài nguyên tiêu thụ
Có thể kiểm tra các tham số điều khiển nguồn tài nguyên hệ thống thống kê từ một VPS. Sử dụng chính những thống kê này để hiểu những đặc trƣng của tài nguyên có giới hạn ngăn chặn một ứng dụng đƣợc khởi động. Hơn nữa, những thống kê này báo cáo việc tiêu thụ các tài nguyên hiện tại và tối đa cho chạy VPS. Thông tin này có thể đƣợc xem tại tệp tin /proc/user_beancounters. Dƣới đây và hiển thị của một phiên làm việc điển hình:
46
Cột failcnt hiển thị số lần thử không thành công để phân bổ một nguồn tài nguyên đặc thù. Nếu giá trị này tăng sau khi một ứng dụng gặp lỗi khởi động, thì sau đó giới hạn tài nguyên tƣơng ứng có hiệu lực thấp hơn giá trị mà ứng dụng cần thiết.
Cột held hiển thị các mức tiêu thụ các tham số tài nguyên hiện tại. Cột maxheld hiển thị giá trị tối đa mức tiêu thụ tài nguyên. Ý nghĩa của các cột phụ thuộc vào các tham số và đƣợc giải thích trong tài liệu hƣớng dẫn Quản lý hệ thống tài nguyên trong OpenVZ.
Bên trong một VPS, tệp tin /proc/user_beancounters chỉ hiển thị các thông tin của VPS đó trong khi máy chủ vật lý gốc thì tệp tin này hiển thị các thông tin của tất cả các VPS.
b.Giám sát tiêu thụ bộ nhớ
Ta có thể một số các tham số bộ nhớ của máy chủ vật lý gốc và cả VPS cụ thể với sự giúp đỡ của lệnh vzmemcheck, ví dụ:
Tùy chọn –v đƣợc sử dụng để hiển thị các thông tin về bộ nhớ cho mỗi VPS riêng và không cho máy chủ vật lý gốc nói chung. Cũng có thể hiển thị các giá trị với đơn vị MB bằng cách sử dụng tùy chọn –A để chuyển đổi. Các tham số theo dõi (từ trái sang phải) gồm có sử dụng bộ nhớ mức thấp, cam kết bộ nhớ mức thấp, RAM sử dụng, bộ nhớ + bộ nhớ tráo đổi sử dụng, bộ nhớ + bộ nhớ tráo đổi cam kết, cấp phát bộ nhớ sử dụng, cấp phát bộ nhớ cam kết, cấp phát bộ nhớ giới hạn.
Để hiểu các thông số trên, trƣớc hết cần phải tìm ra đƣợc sự khác biệt giữa mức sử dụng và mức cam kết. Mức sử dụng là số các nguồn tài nguyên tiêu thị bởi các VPS tại thời điểm nhất định. Nhìn chung, các giá trị sử dụng thấp có nghĩa là dƣới mức sử dụng của hệ thống. Thông thƣờng, nó có nghĩa là hệ thống có khả năng hỗ trợ thêm nhiều VPS nếu các VPS hiện tại tiếp tục duy trì cũng một tải và mức tiêu thụ vài tài nguyên. Mức sử dụng cao (hơn 1 hoăc hơn 100%) có nghĩa là hệ thống bị quá tải và mức độ dịch vụ của VPS bị suy giảm. Cho thấy mức cam kết là số tài nguyên đã “hứa” cho VPS hiện tại. Mức cam kết thấp có nghĩa hệ thống có khả năng hỗ trợ thêm nhiều VPS nữa. Mức độ cam kết hơn 1 có nghĩa VPS đang đƣợc hứa hẹn nhiều tài nguyên hệ thống có và hệ thống đƣợc gọi là vƣợt quá cam kết. Nếu hệ thống chạy rất nhiều VPS
47
nó thƣờng chấp nhận đƣợc một số cái “trên mức cam kết” vì không chắc rằng tất cả các VPS sẽ yêu cầu một trong những nguồn tài nguyên vào cùng thời gian nhƣ nhau. Tuy nhiên mức cam kết rất cao sẽ gây ra cho các VPS không đƣợc phân bố và sử dụng tài nguyên nhƣ đã hứa và có thể thể làm mất ổn định hệ thống.
Bộ nhớ thấp là vùng quan trọng nhất của bộ nhớ RAM đại diện cho một phần của bộ nhớ cƣ trú tại địa chỉ thấp hơn và có thể truy cập trực tiếp bởi hạt nhân.Trong OpenVZ, kích thƣớc của vùng nhớ thấp đƣợc giới hạn là 832MB trong UP (bộ xử lý đơn) và phiên bản SMP của hạt nhân, và để 3.6 GB trong phiên bản Enterprise của hạt nhân. Nếu tổng kích thƣớc RAM máy tính thấp hơn giới hạn (832MB hoặc 3.6GB tƣơng ứng) thì kích thƣớc thực tế của các vùng bộ nhớ thấp bằng tổng dung lƣợng bộ nhớ.
Bộ nhớ bao gồm RAM và bộ nhớ trao đổi là các tài nguyên máy tính quyết định bộ nhớ có sẵn cho các ứng dụng. Nếu tổng kích thƣớc bộ nhớ đƣợc sử dụng vƣợt quá kích thƣớc bộ nhớ RAM, nhân Linux sẽ chuyển một số dữ liệu sang bộ nhớ trao đổi và tải nó về khi ứng dụng cần tới nó. Dữ liệu đƣợc sử dụng nhiều có xu hƣớng ở lại trong RAM, dữ liệu ít đƣợc sử dụng thì phần lớn thời gian nằm trong bộ nhớ trao đổi. Hoạt động trao đổi ra và trao đổi vào làm giảm hiệu suất hoạt động của hệ thống ở một số phạm vi, tuy nhiên nếu hoạt động này không nhiều thì việc giảm hiệu suất không phải là vấn đề đáng chú ý. Mặt khác, cá lợi ích của việc sử dụng bộ nhớ trao đổi là khá lớn, cho phép tăng số lƣợng các VPS trong hệ thống lên 2 lần. Trao đổi là cần thiết để xử lý sự vƣợt tải của hệ thống. Một hệ thống với không gian bộ nhớ trao đổi đủ chỉ chậm khi sự vƣợt tải cao, trong khi một hệ thống mà không đủ không gian bộ nhớ trao đổi, phản ứng lại với sự vƣợt tải cao do bị từ chối cấp phát bộ nhớ (gây ra việc các ứng dụng từ chối chấp nhận khách hàng hoặc chấm dứt) và trực tiếp giết chết một số ứng dụng. Ngoài ra, sự hiện diện của bộ nhớ trao đổi, giúp cân bằng hệ thống tốt hơn nhờ việc di chuyên dữ liệu giữa các khu vực bộ nhớ thấp và phần còn lại của RAM.
Cấp phát bộ nhớ là việc thêm “ảo” tài nguyên hệ thống nhiều hơn RAM hoặc RAM cộng với bộ nhớ trao đổi. Ứng dụng có thể cấp phát bộ nhớ nhƣng bắt đầu sử dụng nó chỉ sau khi và chỉ khi bộ nhớ vật lý trống thực sự giảm. Tổng kích cỡ của bộ nhớ đƣợc phân bổ trong tất cả các VPS là ƣớc lƣợng bộ nhớ vật lý sẽ đƣợc sử dụng nếu tất cả các ứng dụng đòi hỏi đƣợc phân bổ bộ nhớ. Bộ nhớ có sẵn để phân bố không chỉ đƣợc sử dụng (cột Alloc util) hoặc mức cam kết (cột Alloc commit), nhƣng cũng có giới hạn (các ứng dụng sẽ không có khả năng phân bổ nguồn lực nhiều hơn giá trị chỉ ra trong cột Alloc limit).
48