Aslında sormadan önce, net olmak gerekirse: evet, disk önbelleğini biliyorum ve hayır, bu benim durumum değil :) Üzgünüz, bu başlangıç için :)
CentOS 5 kullanıyorum. Sistemdeki her uygulama yoğun olarak değişiyor ve sistem çok yavaş. Yaptığımda free -m
, işte aldığım şey:
total used free shared buffers cached
Mem: 3952 3929 22 0 1 18
-/+ buffers/cache: 3909 42
Swap: 16383 46 16337
Yani, aslında sadece kullanmak için 42 Mb var! Anladığım kadarıyla, -/+ buffers/cache
aslında disk önbelleğini saymaz, bu yüzden gerçekten sadece 42 Mb'ım var, değil mi? Yanılıyor olabileceğimi düşündüm, bu yüzden disk önbelleğini kapatmaya çalıştım ve hiçbir etkisi olmadı - resim aynı kaldı.
Böylece tüm RAM'imi kimlerin kullandığını bulmaya karar verdim ve bunun top
için kullandım. Ancak, görünüşe göre, hiçbir işlem RAM'imi kullanmıyor. Üstümdeki tek işlem MySQL, ancak% 0.1 RAM ve 400Mb takas kullanıyor. Diğer hizmetleri veya uygulamaları çalıştırmaya çalıştığımda aynı resim - hepsi değiş tokuş ediyor, top
MEM'nin kullanılmadığını gösteriyor (herhangi bir işlem için maksimum% 0,1).
top - 15:09:00 up 2:09, 2 users, load average: 0.02, 0.16, 0.11
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4046868k total, 4001368k used, 45500k free, 748k buffers
Swap: 16777208k total, 68840k used, 16708368k free, 16632k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND
3214 ntp 15 0 23412 5044 3916 S 0.0 0.1 0:00.00 17m ntpd
2319 root 5 -10 12648 4460 3184 S 0.0 0.1 0:00.00 8188 iscsid
2168 root RT 0 22120 3692 2848 S 0.0 0.1 0:00.00 17m multipathd
5113 mysql 18 0 474m 2356 856 S 0.0 0.1 0:00.11 472m mysqld
4106 root 34 19 251m 1944 1360 S 0.0 0.0 0:00.11 249m yum-updatesd
4109 root 15 0 90152 1904 1772 S 0.0 0.0 0:00.18 86m sshd
5175 root 15 0 90156 1896 1772 S 0.0 0.0 0:00.02 86m sshd
Yeniden başlatma yardımcı olmuyor ve bu arada, bu makineden normalde beklemeyeceğim çok yavaşlar (4 çekirdekli, 4 Gb RAM, RAID1).
Bu nedenle, bununla - RAM'i kullanan bir disk önbelleği olmadığından eminim, çünkü normalde azaltılmış olmalı ve diğer işlemlerin RAM'i kullanmasına izin vermeliydi, sonra değiş tokuş yapmalılar.
Sonunda, soru şu - eğer birisi hafızayı bu kadar yoğun kullanıyorsa hangi sürecin nasıl olduğunu bulmak için bir fikri varsa?
irc.freenode.org
. Burada genişletilmiş tartışmalar için bir sohbet odası hazırladım .
free -m
, ancak bunun boyutu Linux ile sorgulanabilir cat /proc/spl/kstat/zfs/arcstats | grep data_size
.