魏艾斯博客之前发布过几篇对 Vultr VPS 日本线路的评测,正好手里有的两个某宝购买的 VPS,把这三个 VPS 的内存使用情况放在一起对比了一下,卧槽真的是不比不知道,下面用事(tu)实(pian)来说明真相。
以下三个 VPS 分别放在日本、中国香港和美国,都运行着 wordpress 博客程序,日本 VPS 的网站每天有 1500 左右的访问量,另外两个几乎为 0。
Vultr 日本 VPS 内存
某宝中国香港 VPS
某宝美国 VPS
大家看图就明白了,大品牌 Vultr VPS 的技术确实无可挑剔,比某宝私人弄的 VPS 高出不止一个档次了。感兴趣的可以参考Vultr VPS KVM 5 美元/月 768M/15G SSD/1000G 日本使用评测。
有朋友说上面的命令结果我看不懂啊,那正好今天的主要内容就是有关 free -m 这条命令的解读,以上面 Vultr 日本机房linux 内存使用情况为例子看看。
total used free shared buffers cached Mem: 1006 959 46 0 86 603 -/ buffers/cache: 269 736 Swap: 0 0 0
1、Mem 这一行: total 内存总数: 1006M used 已经使用的内存数: 959M free 空闲的内存数: 46M shared 当前已经废弃不用,总是 0 buffers Buffer 缓存内存数: 86M cached Page 缓存内存数:603M
关系:total(1006M) = used(959M) free(46M)
2、(-/ buffers/cache)这一行: (-buffers/cache) used 内存数:269M (指的第一部分 Mem 行中的 used – buffers – cached) ( buffers/cache) free 内存数: 736M (指的第一部分 Mem 行中的 free buffers cached)
所以说-buffers/cache 反映的是被现有程序实实在在吃掉的内存,而 buffers/cache 反映的是你还可以挪用的内存数。
3、Swap 是指交换分区, Linux 的 Swap 类似于 Windows 的虚拟内存,就是把一部分硬盘空间虚拟成内存使用,用来解决内存容量不足的问题。
也有朋友对于 Mem 和-/ buffers/cache 中都有 used 和 free 却并不相同很困惑,那这么说也许你会理解:对 linux 系统来说看 Mem 的参数,buffers/cached 都是属于被使用,所以它认为 free 只有 232。而对应用程序来说(-/ buffers/cach).buffers/cached 是可用的,因为 buffer/cached 是缓存,用来提高程序执行的性能,当程序需要使用内存时,就会使用 buffer/cached。平时我们说 linux 系统剩余内存多少,一般是说(-/ buffers/cache)的 free 还有多少,因为这个都是可用的。
说到这里就不得不提 windows,早些年 512M 内存和 1G 内存的时候,我们用 XP 系统玩一个大型游戏,同时开着 QQ、杀毒软件、防火墙等别的软件,系统会经常提示“windows 虚拟内存不足”,这是一件多么尴尬的事情啊!
windows 的内存机制是这样的:不管剩余多少真实物理内存,都要把一部分硬盘空间拿出来做虚拟内存用,你想想硬盘速度怎么能快过内存呢?不过 windows7/8/10 已经解决了这个问题,而且现在的物理内存都 4G 起步了,有的游戏玩家攒机搞出 16G 内存来也是很常见的事情。
而linux 内存管理机制是把闲置的内存全部使用起来,等于是你的网站放在内存里面跑,这样网站打开速度与 windows 相比,是不是快多了呢?
我们看 linux 剩余内存,只要 swap 交换空间是 0 就不用担心内存不够用。但是如果 swap 都用了很多,就像本文开头那两个 VPS 截图的情况,就要考虑加物理内存或者换更高配置的 VPS 了,这也是检查 linux 内存是否够用的标准了。