Thêm một câu hỏi về bộ nhớ trên Solaris 10.
Một đầu cho tôi thấy rằng tôi có bộ nhớ trống 672 MB:
130 processes: 126 sleeping, 2 zombie, 2 on cpu
CPU states: 95.1% idle, 3.9% user, 1.0% kernel, 0.0% iowait, 0.0% swap
Memory: 16G phys mem, 672M free mem, 2048M total swap, 2023M free swap
Một vmstat cho tôi thấy như vậy:
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr rm s0 s1 s2 in sy cs us sy id
0 0 0 564744 687896 3 13 0 0 0 0 0 0 0 0 0 354 667 752 1 1 98
Nhưng khi tôi thực hiện kích thước prstat -a -s, tôi nhận được điều này:
NPROC USERNAME SWAP RSS MEMORY TIME CPU
45 orbixadm 1449M 1592M 9.7% 4:46:53 0.4%
48 root 146M 160M 1.0% 8:09:49 1.2%
3 user1 46M 204M 1.2% 0:00:45 0.0%
9 webservd 46M 14M 0.1% 0:00:00 0.0%
5 ctxsrvr 28M 32M 0.2% 4:54:51 0.0%
11 user2 23M 34M 0.2% 0:00:37 0.2%
4 user3 4840K 11M 0.1% 0:00:01 0.0%
1 smmsp 1456K 4552K 0.0% 0:00:24 0.0%
2 daemon 2128K 6224K 0.0% 0:06:32 0.0%
1 user4 1232K 3608K 0.0% 0:00:00 0.0%
1 nagios 376K 2472K 0.0% 0:15:18 0.0%
và như bạn có thể thấy, tổng giá trị RSS không đạt tới 15GB bộ nhớ và ngay cả khi tôi thêm các giá trị SWAP vào nó.
Vì vậy, câu hỏi của tôi là: tôi tin lệnh nào?
Nếu top và vmstat cho tôi kết quả tốt, bộ nhớ 15GB đã sử dụng của tôi ở đâu? Nếu không, tại sao họ chỉ cho tôi điều đó?
Chỉnh sửa: kết quả cho lệnh: % echo ::memstat | mdb -k
Page Summary Pages MB %Tot
------------ ---------------- ---------------- ----
Kernel 1687138 13180 82%
Anon 137110 1071 7%
Exec and libs 47107 368 2%
Page cache 95277 744 5%
Free (cachelist) 22248 173 1%
Free (freelist) 69592 543 3%
Total 2058472 16081
Physical 2055442 16058
Chỉnh sửa 2:
Ok, bây giờ tôi có thể thấy bộ nhớ được sử dụng bởi bộ đệm ARC.
Nhưng với một số thử nghiệm mới, bây giờ tôi có:
2066 MB used
( prstat -Z và echo :: memstat | mdb -k result)
1193 MB free
( kết quả trên cùng )
8859 MB ARC cache
( kstat zfs :: arcstats: kết quả kích thước )
Điều này cho chúng ta ít nhiều 12 GB
bộ nhớ, trong khi hệ thống của tôi có 16 GB
.
Có lẽ tôi đã bỏ lỡ một cái gì đó khác, nhưng cái khác ở 4 GB
đâu?
kstat zfs::arcstats:size
đầu ra cho câu hỏi của bạn.