Máy tính có thể coi là chiếc cần câu cơm của 1 dev, trong cái thời buổi "công nghiệp 4.0" có cả tỉ công cụ phục vụ cho dev code nhàn hơn, các công cụ thì ngày càng ngon ngày càng nhiều và theo đó những gì dev sử dụng khi code cũng phình to ra và cái "cần câu cơm" cũng cần được nâng cấp, nếu làm việc trong một công ty với những quy định về bảo mật thì bạn k thể tự tiện lắp thêm phần cứng để nâng cấp cho chiếc "cần câu cơm" của mình. Chính mình đã từng gặp vấn đề về cấu hình thiết bị, với chiếc PC 8gb RAM chỉ để code backend nghe có vẻ khá ổn, đúng nó khá ổn trong một thời gian, nhưng r một ngày sau khi đã chinh chiến qua nhiều project con máy bắt đầu gặp vấn đề thường xuyên đầy RAM và mỗi lần như thế nó lại "đơ" ra phải hard reset mới sống lại, tốn cả đống thời gian với nó vì khi khởi động lại là lại bắt đầu mở lại các công cụ từ đầu => cay cú. dù đã thử tắt bớt các process đang chạy nhưng cũng k giải quyết đc vấn đề [có thể do bật nhiều tab chrome quá =]] ]. phương án cuối cùng và khả thi là thêm RAM, cơ mà máy ở công ty để xin thêm RAM hay lắp thêm cái gì cũng thế cần qua nhiều khâu rối rắm
SWAP [RAM ảo] là gì?
Swap là RAM [bộ nhớ đệm] được lấy đổi từ ổ cứng. Nó được sử dụng khi RAM vật lý đã được sử dụng hết [hoặc hỗ trợ sử dụng song song] nhằm tăng dung lượng bộ nhớ đệm. Thực tế việc tạo phân vùng SWAP luôn được suggest mỗi khi cài đặt Ubuntu hay Linux trên máy tính [thường là x2 dung lượng Ram vật lý]. Đặc biệt cài đặt SWAP trên cũng sẽ làm tăng độ an toàn của máy chủ vật lý [hoặc VPS] phòng tránh được những trường hợp đầy RAM.
How to add Swap File
Thực hiện theo các bước sau để thêm 1GB SWAP vào máy của bạn. Nếu bạn muốn thêm x GB thay vì 1 GB, hãy thay thế 1G bằng xG.
Tạo một tập tin sẽ được sử dụng để SWAP
sudo fallocate -l 1G /swapfile
Nếu faillocate không được cài đặt hoặc nếu bạn nhận được thông báo lỗi fallocate failed: Operation not supported thì bạn có thể sử dụng lệnh sau để tạo SWAP file:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
Set permissions
Chỉ người dùng root mới có thể viết và đọc SWAP file. Để Set permissions:
sudo chmod 600 /swapfile
thiết lập phân vùng SWAP
Sử dụng mkswap để thiết lập phân vùng SWAP:
sudo mkswap /swapfile
Enable swap
Kích hoạt SWAP file bằng lệnh sau:
sudo swapon /swapfile
Để thay đổi vĩnh viễn, hãy mở /etc/fstabtệp và nối dòng sau:
/swapfile swap swap defaults 0 0
Xác nhận trạng thái SWAP
Để kiểm tra xem SWAP đang hoạt động, chúng ta có thể sử dụng lệnh swapon như dưới đây:
sudo swapon --show
NAME TYPE SIZE USED PRIO /swapfile file 1024M 507.4M -1
Cách điều chỉnh giá trị swappiness
Mặc định các Ubuntu, Centos… đều để mặc định thông số Swappiness là 60 tức là khi RAM thật của sử dụng khoảng 60% thì SWAP sẽ được sử dụng. Vì tốc độ I/O của RAm lớn hơn ở cứng nhiều nền nếu để thông số này cao sẽ làm giảm hiệu suất máy của bạn. ví dụ để đặt giá trị swappiness thành 10, hãy nhập:
sudo sysctl vm.swappiness=10
Để làm cho tham số này liên tục trên các lần khởi động lại, hãy nối dòng sau vào file /etc/sysctl.conf :
vm.swappiness=10
Bạn nên điều chỉnh tham số này theo từng bước nhỏ để tìm giá trị tối ưu.
Cách xóa SWAP file
Nếu vì bất kỳ lý do nào bạn muốn hủy kích hoạt và xóa SWAP file, hãy làm theo các bước sau:
Đầu tiên, hủy kích hoạt SWAP bằng cách gõ:
sudo swapoff -v /swapfile
Loại bỏ các mục đã nhập SWAP file /swapfile swap swap defaults 0 0 từ các file /etc/fstab
Cuối cùng xóa SWAP file bằng lệnh:
sudo rm /swapfile
Nguồn tham khảo: //linuxize.com/post/create-a-linux-swap-file/
- Lệnh free
- Lệnh vmstat
- Lệnh top
- file /proc/meminfo
- Lệnh htop
Chúng ta dùng các lệnh linux
có thể kiểm tra tình trạng bộ nhớ sử dụng thế nào. Bộ nhớ gồm có RAM và lưu tạm [swap]. Kiểm tra bộ nhớ là quan trọng để biết server sử dụng tài nguyên như thế nào.
Lệnh free
Lệnh free
cho biết thông tin tổng số, số đã sử dụng của bộ nhớ vật lý và bộ nhớ swap trên hệ thống, cũng như bộ đệm và các cache, thông tin này thực chất nó thu thập từ file /pro/meminfo
swap là bộ nhớ do hệ thống Linux tạo ra trên ổ đĩa, nó sử dụng nhơ bộ nhớ vật lý để đề phòng khi bộ nhớ vật lý đầy thì dùng swap.
Đây là lệnh đơn giản vè dễ dùng để kiểm tra bộ nhớ.
$ free -h total used free shared buff/cache available Mem: 7.6G 5.7G 1.4G 94M 554M 1.5G Swap: 7.9G 1.0G 6.8G
Với tùy chọn -h
để dữ liệu hiện thị ở dạng dễ đọc, -m
các số liệu sẽ là MB
Các cột dữ liệu:
total
: tổng số bộ nhớused
: bộ nhớ đã dùng - nó được tính bằng cách lấy tổng bộ nhớ trừ đi bộ nhớ còn trống, đệm và cachefree
: bộ nhớ còn trống [chưa dùng đến]shared
: bộ nhớ dùng bởi tmpfsbuffers
: bộ nhớ đệm [lưu trữ tạm thời dữ liệu trong khi đọc/ghi từ nguồn bên ngoài - như đĩa]
tempfs còn gọi là RAM Disk
hay temporary filesystem
, là một loại ổ đĩa lấy Ram để
tạo ra nhằm có ổ đĩa mà tốc độ đọc ghi rất nhanh, các file lưu vào đây mất khi máy khởi động lại.
Linux có xu hướng caching nhiều thứ để tăng tốc, vì đó mà RAM
thường xuyên được giải phóng, lưu tạm vào đĩa và sử dụng nếu cần.
Lệnh vmstat
vmstat
cho thông tin về bộ nhớ, các tiến trình, hoạt động của CPU, ổ đĩa. Trong đó có thông tin về bộ nhớ [tổng, đã dùng]
$ vmstat -s -SM 7820 M total memory 5620 M used memory 3889 M active memory 1633 M inactive memory 1633 M free memory 0 M buffer memory 567 M swap cache 8063 M total swap 1069 M used swap 6994 M free swap 605125725 non-nice user cpu ticks 935 nice user cpu ticks 65688845 system cpu ticks 8522280247 idle cpu ticks 5297010 IO-wait cpu ticks 0 IRQ cpu ticks 3259077 softirq cpu ticks 0 stolen cpu ticks 41871348 pages paged in 290981077 pages paged out 23525 pages swapped in 355631 pages swapped out 774148951 interrupts 107517783 CPU context switches 1578562406 boot time 13808720 forks
Những dòng trên cùng cho biết tổng bộ nhớ, bộ nhớ trống ...
Lệnh top
Lệnh top thường được dùng để kiểm tra tình trạng sử dụng bộ nhớ và CPU cho các process. Tuy vậy nó cũng cho biết và giám sát tình trạng sử dụng RAM. Lệnh này nó thống kê liên tục [mặc định 3s thông báo 1 lần], để kết thúc lệnh gõ Ctrl + C
top - 09:05:12 up 133 days, 16:31, 2 users, load average: 0.73, 0.72, 0.61 Tasks: 266 total, 1 running, 265 sleeping, 0 stopped, 0 zombie %Cpu[s]: 0.7 us, 0.4 sy, 0.0 ni, 98.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8008448 total, 1713752 free, 5713144 used, 581552 buff/cache KiB Swap: 8257532 total, 7163084 free, 1094448 used. 1893040 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3690 33 20 0 184696 26692 7984 S 5.0 0.3 1427:47 apache2 3597 root 20 0 11.3g 3.8g 3664 S 2.3 49.8 97178:35 sqlservr 2722 polkitd 20 0 3134152 640808 3024 S 0.7 8.0 2790:23 mysqld 13365 root 20 0 162152 2416 1572 R 0.7 0.0 0:00.20 top 29870 root 20 0 3264612 24828 5680 S 0.7 0.3 84:32.49 dotnet 1483 root 20 0 1456792 43820 2232 S 0.3 0.5 484:19.80 dockerd 1 root 20 0 193732 4140 2304 S 0.0 0.1 4:30.74 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:05.18 kthreadd
Thông tin trong /proc/meminfo
File /proc/meminfo
do Linux tạo ra nó nằm trong RAM, nó chứa thông tin cập nhật về bộ nhớ
Để đọc nội dung có thể sử dụng cat
cat /proc/meminfo MemTotal: 8008448 kB MemFree: 1743488 kB MemAvailable: 1923764 kB Buffers: 4 kB Cached: 323496 kB SwapCached: 49920 kB Active: 3920464 kB Inactive: 1663112 kB Active[anon]: 3844908 kB Inactive[anon]: 1511520 kB Active[file]: 75556 kB Inactive[file]: 151592 kB
Lệnh htop
Tương tự như top, nhưng trực quan và có nhiều thiết lập xem chi tiết hơn. htop có sẵn trong Ubuntu, CentOS thì cài thêm bằng lệnh
yum intall htop -y