New FAMILUG

The PyMiers

Showing posts with label kernel. Show all posts
Showing posts with label kernel. Show all posts

Thursday, 5 January 2017

[Linux] Máy còn free bao nhiêu RAM?

Ai dùng Linux, một thời gian sẽ biết cách kiểm tra dung lượng bộ nhớ (memory - RAM) còn trống bằng lệnh free:
$ free -m 
             total       used       free     shared    buffers     cached
Mem:           992        789        203          0         43        413
-/+ buffers/cache:        332        660
Swap:            0          0

Lệnh này không dễ đọc và rất nhiều người sẽ nhầm tưởng là máy còn free 203 MB RAM.
Điều này đúng hay sai phụ thuộc vào khái niệm "free" của từng người.

Thursday, 11 August 2016

[Linux kernel] dm - đang mệt

dm là từ viết tắt phổ biến cho "device mapper" trong thế giới Linux.
dm xuất hiện từ phiên bản 2.6.9 [2] của Linux kernel, tức đến giờ này thì các hệ điều hành Linux-based đều có sẵn dm để dùng.

Trang chủ: https://www.sourceware.org/dm/ đã định nghĩa một cách nghiêm túc về dm như sau [3]:
The Device-mapper is a component of the linux kernel (since version 2.6) that supports logical volume management. It is required by LVM2 and EVMS. The original LVM (included in stock 2.4 kernels) does not use it.
Vậy dm:
  • là một thành phần của Linux kernel - cụ thể nó là một kernel module (wikipedia gọi nó là một "framework" [4]).
  • dùng để hỗ trợ việc quản lý các volume một cách "logical".
  • là phần yêu cầu bởi LVM2 và EVMS - nếu không biết chúng là gì - tạm bỏ qua
Trên Linux, dm thể hiện là một block device, có thể thấy ở :

Wednesday, 10 December 2014

sysctl - cấu hình các tham số kernel khi đang chạy

sysctl là một công cụ đơn giản (vâng, đơn giản hơn cả ls), công việc của nó chỉ có hiển thị hoặc thay đổi một tham số nào đó của kernel. Vấn đề biết phải thay đổi tham số nào, để làm gì mới là phần ... phức tạp.

Hỏi theo phong cách CCGU:
# whatis sysctl
sysctl (8)           - configure kernel parameters at runtime
# whereis sysctl
sysctl: /sbin/sysctl /etc/sysctl.d /etc/sysctl.conf /usr/share/man/man8/sysctl.8.gz
Hiển thị 1 parameter có tên là net.ipv4.ip_forward (để cho phép forward gói tin) :
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
Thay đổi giá trị của parameter nói trên:
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
Các settings của sysctl nằm ở /etc/sysctl.conf và có thể trong thư mục /etc/sysctl.d, để thay đổi có hiệu lực cả sau khi reboot, cần sửa các file này thay vì set trực tiếp bằng sysctl.

Các parameter mà sysctl thao tác được liệt kê ở dạng file tại thư mục /proc/sys.
 Option: -a hiển thị tất cả các tham số hiện tại sẵn sàng
# find /proc/sys -type f | wc -l # đếm số file trong /proc/sys
693
# sysctl -a | wc -l 
error: permission denied on key 'net.ipv4.route.flush'
error: permission denied on key 'net.ipv6.route.flush'
error: permission denied on key 'vm.compact_memory'
713
Có một chút chênh lệch về số lượng ở đây, lý do có sự chênh lệch này là do output của sysctl có nhiều giá trị khác nhau cho cùng 1 parameter: