Hướng dẫn kiểm tra dung lượng RAM được cấp trên OpenVZ

Cấp phát RAM trong nền tảng ảo hóa OpenVZ phụ thuộc vào 3 tham số chính là:

  • kmemsize: khuyến cáo cấp 10% lượng RAM, tham số được tính bằng Byte
  • oomguarpages: Là RAM thực được cấp, được tính bằng pages (1 page = 4KB)
  • privvmpages: là lượng RAM tổng chứa cả RAM thực và Burst, và cũng được tính bằng pages

Để kiểm tra các tham số này, ta dùng lệnh: cat /proc/user_beancounters
Trong đó, cột held là đã sử dụng, maxheld là lượng tối đa đã từng sử dụng đến, barrier là giới hạn được cấp, limit cũng là giới hạn được cấp "cứng".
VPS sử dụng RAM vượt mức barrier hay limit đều overload, điểm khác nhau giữa 2 giới hạn này là limit là giới hạn vượt tối đa và khi chạm limit, sẽ bị tính lỗi, cột failcnt thể hiện lượng RAM dùng vượt mức.

Cách kiểm tra đơn giản mà không phải tính toán, là tạo 1 script đơn giản như sau:

nano -w vzfree

Dán các dòng lệnh sau:

#!/bin/bash

x=$(cat /proc/user_beancounters |grep privvmpages|awk 'BEGIN{ cur=max=lim=0; }{ cur+=$2;max+=$3;lim+=$4 } END {print cur*4/1024,max*4/1024,lim*4/1024}')
kmemsize=$(cat /proc/user_beancounters |grep kmemsize|awk 'BEGIN{ cur=max=lim=0; }{ lim+=$5 } END {print lim/1048576}')
guarantee=$(cat /proc/user_beancounters |grep oomguarpages|awk 'BEGIN{ cur=max=lim=0; }{ lim+=$4 } END { print lim*4/1024}') used=$(echo $x| awk '{print $1}')
maxused=$(echo $x| awk '{print $2}') burst=$(echo $x| awk '{print $3}')

echo "VPS Info:"
echo "Used:           $used MB"
echo "Max used:       $maxused MB"
echo "Kernel Memory:  $kmemsize MB"
echo "Guarantee RAM:  $guarantee MB"
echo "Burst RAM:      $burst MB"

Thoảt và lưu lại script bằng lệnh Ctrl+x, Y

chmod 755 vzfree

Chạy script:

./vzfree