linux 2.6+的核心會(huì)使用硬盤(pán)的一部分做為SWAP分區(qū),用來(lái)進(jìn)行進(jìn)程調(diào)度--進(jìn)程是正在運(yùn)行的程序--把當(dāng)前不用的進(jìn)程調(diào)成‘等待(standby)‘,甚至‘睡眠(sleep)’,一旦要用,再調(diào)成‘活動(dòng)(active)’,睡眠的進(jìn)程就躺到SWAP分區(qū)睡大覺(jué),把內(nèi)存空出來(lái)讓給‘活動(dòng)’的進(jìn)程。
如果內(nèi)存夠大,應(yīng)當(dāng)告訴 linux 不必太多的使用 SWAP 分區(qū), 可以通過(guò)修改 swappiness 的數(shù)值。swappiness=0的時(shí)候表示最大限度使用物理內(nèi)存,然后才是 swap空間,swappiness=100的時(shí)候表示積極的使用swap分區(qū),并且把內(nèi)存上的數(shù)據(jù)及時(shí)的搬運(yùn)到swap空間里面。
在ubuntu 里面,默認(rèn)設(shè)置swappiness這個(gè)值等于60。
查看swap使用率
cat /proc/sys/vm/swappiness
臨時(shí)修改
sudo sysctl vm.swappiness=10
或者
echo 10 > /proc/sys/vm/swappiness
但是這只是臨時(shí)性的修改,在你重啟系統(tǒng)后會(huì)恢復(fù)默認(rèn)的60,為長(zhǎng)治久安,還要更進(jìn)一步:
sudo gedit /etc/sysctl.conf
在這個(gè)文檔的最后加上這樣一行:
vm.swappiness=10
查看系統(tǒng)允許打開(kāi)的最大文件數(shù)
cat /proc/sys/fs/file-max
查看每個(gè)用戶允許打開(kāi)的最大文件數(shù)
ulimit -a
發(fā)現(xiàn)系統(tǒng)默認(rèn)的是open files (-n) 1024,問(wèn)題就出現(xiàn)在這里。
在系統(tǒng)文件/etc/security/limits.conf中修改這個(gè)數(shù)量限制, 在文件中加入內(nèi)容:
* soft nofile 102400
* hard nofile 102400
修改文件配置的方法都需要重啟生效。