Tải bản đầy đủ

Tìm hiểu về Linux CPU load

LINUX CPU LOAD
Load averages là 3 thông số hiện ra khi sử dụng lệnh uptime và top, nó có dạng
như:

Hầu hết mọi người đều thắc mắc rằng, 3 thông số load average mang ý nghĩa gì? 3
thông số này thể hiện giá trị trung bình trong 3 khoảng thời gian: 1, 5, 15 phút, số nào
thấp hơn thì thể hiện load average tốt hơn. Số cao hơn thể hiện rằng có một vấn đề hoặc
một máy bị quá tải. Nhưng, ngưỡng cho những giá trị đó là gì? Những yếu tố nào cấu
thành nên một giá trị load average tốt hoặc xấu. Khi nào thì bạn nên quan tâm đến giá trị
load average và khi nào bạn nên dành thời than để sửa chữa nó cành sớm càng tốt nếulà
giá trị xấu.
Đầu tiên, sơ qua về giá trị load average có ý nghĩa gì. Chúng ta sẽ bắt đầu với một
khái niệm đơn giản: Một máy với một bộ xử lý đơn lõi (single-core processor).
Tương tự như giao thông
Một CPU đơn lõi giống như một làn đường trong giao thông. Hãy tưởng tượng rằng
“Bạn là một người điều hướng giao thông ở cầu, thỉnh thoảng cây cầu của bạn quá nhiều
những chiếc xe xếp hàng đợi qua cầu. Bạn muốn cho mọi người biết lượng phương tiện
trên chiếc cầu của bạn nhiều như thế nào. Một giá trị tốt sẽ chỉ cho bạn có bao nhiêu
chiếc xe đang chờ đợi tại một thời gian cụ thể. Nếu không có chiếc xe nào đang đợi, lái
xe đến và có thể cho xe chạy qua cầu ngay. Nếu những chiếc xe bị quay lại đồng nghĩa
với lái xe biết xe bị trì hoãn.

Vì vậy, người điều hướng ở cầu, hệ thống đánh số nào mà bạn sẽ sử dụng:
 0.00 có nghĩa là không có chiếc xe nào trên cầu. Trên thực tế, giữa 0.00
và 1.00 có nghĩa là không có chiếc xe nào bị trì hoãn, những chiếc xe đi
tới và có thể qua cầu ngay.


 1.00 có nghĩa là cây cầu đang hoạt động hết khả năng. Mọi thữ vẫn diễn
ra tốt, nhưng những chiếc xe chở nặng sẽ đi chậm hơn.
 > 1.00 có nghĩa là đang có ùn tắc diễn ra. 2.00 có nghĩa là có 2 làn xe
tổng cộng – một làn xe trên cầu và 1 làn đang đợi. 3.00 có nghĩa là có
tổng cộng 3 làn xe, một làn ở trên cầu và 2 làn đợi.

Điều này về cơ bản giống như CPU load là gì? Những chiếc xe là những tiến trình
sử dụng CPU (đi qua cầu) hoặc xếp hàng đợi để sử dụng CPU. Unix đề cập đến điều này
như độ dài hàng đợi: tổng số tiến trình, cái mà hiện tại chạy cộng với số tiến trình đang
chờ.
Giống như người điều hướng cầu, bạn muốn xe của bạn (tiến trình) không bao giờ
phải đợi. Vì vậy CPU load của bạn nên mang giá trị lý tưởng là 1.00. Vẫn ổn nếu như
CPU load tạm thời > 1 nhưng khi giá trị CPU load này luôn >1.00 thì là một điều đáng lo
lắng.
Giá trị lý tưởng 1.00
Giá trị CPU load là 1.00 có nghĩa rằng hàng đợi không có chỗ trống. Trong thực tế, nhiều
quản trị viên sẽ quan tâm tới giá trị 0.70:
Luật “Need to Look into it” của Thumb: Nếu giá trị load average trên 0.70 thì đã đến lúc
quản trị viên cần kiểm tra lại hệ thống trước khi mọi tứ tồi tệ hơn.
Luật “Fix this now” của Thumb: Nếu giá trị load average trên 1.00, thì điều cẩn thiết là
tìm ra vấn đề và sửa nó ngay.


Luật “Arrgh, it’s 3AM WTF?” của Thumb: Nếu load average trên 5.00, bạn đang gặp một
vấn đề nghiêm trọng, máy của bạn có thể bị treo hoặc bị chậm và điều này sẽ ảnh hưởng
đến công việc của bạn.
Multi-processors là gì? Load average = 3 nhưng mọi thứ đều chạy tốt
Có một hệ thống 4 bộ xử lý (quad-processor) là hệ thống mà nó vẫn hoạt động tốt với giá
trị load average 3.00
Trong hệ thống xử lý đa tiến trình, giá trị load liên quan đến số tiến trình lõi có sẵn.
“100% sử dụng” là đánh dấu giá trị load 1.00 cho hệ thống lõi đơn, 2.00 cho hệ thống lõi
kép và 4.00 cho hệ thống lõi tứ, …
Nếu chúng ta quay trởi lại sự tương đồng với cây cầu, giá trị 1.00 thực sự có nghĩa là “1
làn phương tiện”. Trên 1 làn cầu, điều đó có nghĩa nó đã bị đầy. Trên một cây cầu có 2


làn, giá trị 1.00 có nghĩa là chỉ một làn đường đầy nên phương tiện có thể đi vào làn còn
lại.
Giống với CPUs: một giá trị load =1.00 là 100% CPU sử dụng trên máy đơn lõi. Còn trên
máy lõi kép, giá trị load là 2.00 nghĩa là CPU 100% sử dụng.
Đa lõi và đa tiến trình
Nhằm mục đích về hiệu suất, một cái máy với bộ xử lí lõi kép về cơ bảng tương đương
với một máy có có 2 bộ xử lí trên một lõi. Có rất nhiều chính sách khôn ngoan liên quan
đến dung lượng bộ nhớ cache, tấn số xử lí giữa các bộ xử lý. Mặc dù có nhiều điểm tốt
hơn, cho mục đích kích thước của giá trị CPU load, tổng số lõi là những vấn đề quan
trọng, bất kể có bao nhiêu bộ xử lí mà các lõi trải đều.
2 luật của Thumb
Số lõi = max load: Trên hệ thống đa lõi, giá trị load không nên vượt quá số lõi có sẵn.
“cores is cores” : Cách mà lõi được trải trên CPU không phải vấn đề. 2 lõi tứ = 4 lõi kép
= 8 lõi đơn. Nó là tất cả 8 lõi.
Bringing it HOME
Hãy nhìn vào giá trị load average trong output của lệnh uptime:


Nó chạy trên CpU lõi kép, vì vậy chúng ta có nhiều khoảng trống hơn. Không có gì phải
suy nghĩ về giá trị này cho đến khi chúng là 1.7 hoặc hơn.
Bây giờ, 3 giá trị đo là gì? 0.65 là tốc độ load trung bình trong 1 phút cuối, 0.42 là tốc độ
load trung bình trong 5 phút cuối, 0.36 là tốc độ load trung bình trong 15 phút cuối.
Những điều này mang tới cho chúng ta câu hỏi:
Giá trị trung bình nào cần xem xét: 1.5 hay 15 phút?
Đối với những con số mà chúng ta nói về (1.00 – fix it now), bạn nên nhìn vào giá trị
trung bình trong 5 và 15 phút. Nếu máy của bạn có giá trị load trung bình trên 1.0 trên 1
phút, máy của bạn vẫn hoạt động tốt. Khi giá trị load trung bình trong 15 phút lớn hơn 1.0
liên tục thì bạn cần chỉnh sửa. (Rõ ràng, như chũng ta đã biết, điều chỉnh những con số
này thành số bộ xử lý của hệ thống bạn).
Vì vậy, số lõi thì quan trọng để thông dịch load average … Làm thế nào tôi biết có bao
nhiêu lõi trong hệ thống của tôi?
cat /proc/cpuinfo
File này chứa thông tin của mỗi bộ xử lý trong hệ thống của bạn. Chú ý: không có sẵn
trên OSX, Google for alternatives. Để đếm số bộ xử lý, chạy nó bằng lệnh grep và từ đếm
grep ‘model name’ /proc/cpuinfo | wc -l


SSH passphrase
Một passphrase giống như một password. Tuy nhiên, một password nói chung liên quan
một thứ gì đó được sử dụng nhằm xác thực hoặc đăng nhập vào hệ thống. Một password
nói chung liên quan một bí mật được sử dụng để bảo vệ một mã hóa key. Thông thường,
một key mã hóa thực sự được suy ra từ passphrase và sử dụng để mã hóa tài nguyên được
bảo vệ.
Nó nên là kí tự khó đoán
Một passphrase tốt nên có ít nhất 15 kí tự, tốt nhất là 20 kí tự và khó có thể đoán được.
Nó nên bao gồm kí tự thường, kí tự hoa, số và tốt nhất là có ít nhất một dấu chấm. Không
phần nào của passphrase nên phát sinh từ thông tin cá nhân của người dùng hoăc gia đình
của họ
Thỉnh thoảng cần tạo mật khẩu và passphrase một cách random tự động. Chúng ta còn
gợi ý một tạo ra một password/ passphrase an toàn dựa trên trình duyệt.
Bảo vệ một khóa cá nhân
Mục đích của passphrase là thường xuyên mã hóa private key. Điều này tạo ra key file
bởi chính nó vô dụng với attacker. Nó thì không thông dụng cho các file bị rò rỉ từ
backups hoặc phần cứng không dùng tới và hacker thông thường tìm kiếm các file từ hệ
thống bị xâm nhập.
Để sử dụng key mã hóa, passphrase vẫn cần thiết. Một cách khác chúng có 2 yếu tố tách
rời của quá trình xác thực.
Bảo vệ SSH keys
SSH key được sử dụng để xác thực người dùng trong hệ thống thông tin. SSh key chính
là 1 private key, private key tiếp tục được mã hóa sử dụng mã hóa đối xứng được suy ra
từ một passphrase. Sự bắt nguồn của key là sử dụng một hàm hash.
Passphrase thông thường sử dụng cho key thuộc về người dùng có tương tác. Người dùng
sử dụng gợi ý mạnh mẽ nhằm giảm mối đe dọa với lỗ hổng key ngẫu nhiên từ backups
hoặc đĩa cứng không sử dụng.


Trong thực tế, tuy nhiên hầu hết SSH key đều tạo ra mà không có passphrase. Không
người nào gõ bất cứ gì cho key được sử dụng để xác thực. Passphrase sẽ phải được mã
hóa cứng trong một script hoặc được lưu trữ trong một vài loại vault, nơi mà nó có thể
được tìm kiếm bởi một đoạn sccript. Một attacker với đủ quyền có thể dễ dàng đánh lừa
một hệ thống như vậy. Như vậy sẽ có ít sự bảo vệ cho sự tự động hóa.
Hơn 90% SSH key trong hầu hết các tổ chức lớn mà không có passphrase. Tuy nhiên,
điều này dựa trên tổ chức và chính sách an ninh của họ.
Sử dụng công cụ quản lý SSH đúng là một gợi ý để đảm bảo truy cập chính xác quy trình
cấp phép và dừng tiến trình, thường xuyên thay đổi key và làm đúng theo chính sách.
SSH key có thể được tạo ra bởi công cụ như ssh-keygen và PuTTYgen. Những công cụ
này đòi hỏi một passphrase để mã hóa cùng với key.
PGP / GPG Private Key Protection
Private key được sử dụng trong công cụ mã hóa email như PGP để đảm bảo an toàn theo
cách tương tự. Như ứng dụng đặc thù sử dụng private key cho chữ ký số và giải mã email
và file.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×