提醒:本文最后更新于 2976 天前,文中所描述的信息可能已发生改变,请仔细核实。
其实我也不懂合理化管理,只是有些想法而已。
首先,祝大家国庆快乐。是这样的,换了VPS,相信这件事基本上大家都知道了。然后经过硬盘速度测试,妈蛋,才10几MB/s。坑爹的要命,经过修改大部分程序,现在基本上缓存都是保存在内存里面。但XEN有个虚拟内存,SWAP区。因为我大多数程序都优先Cache化,所以经常,SWAP区有时被Nginx或者PHP-FPM占用了部分了。
于是心生想法,禁用SWAP区。只用内存,这样就解决了这些问题,并且速度也快了不少。但当服务器被攻击的时候,因为我之前没限定最大进程(可以这么说),导致内存用完,没有SWAP做缓冲,System Halted,宕机了。所以我想了下,写了个脚本,通过检测实际内存占用(即真实内存使用)的大小,当使用超过1.5G(我是2G内存),启动SWAP区做缓冲,并邮件通知。当内存占用降低时,禁用SWAP区。如此,便解决了这个问题。
主要shell命令(算是原创吧,欢迎挑错):
FREE_MEM=$(free -m | grep - | awk '{print $3}') SWAPON=$(free -m | grep Swap | awk '{print $2}') if [ $FREE_MEM -lt 1536 ] ;then [ $SWAPON -ne 0 ]&&swapoff -a else [ $SWAPON -eq 0 ]&&swapon -a fi
关于如何测试VPS的硬盘速度,大家可以看这里:传送门。
现在在网络上流传着好几种测试磁盘读写速度的DD命令,很多不大理解DD命令的朋友通常会把数值结果作为判断磁盘读写速度的标准,但实际上,因为不同的DD命令的参数不同,同样的磁盘会有不同的数值结果。通常大家使用的有如下四个命令,下面帮助大家解析一下这几个命令。
dd bs=1M count=128 if=/dev/zero of=test
dd bs=1M count=128 if=/dev/zero of=test; sync
dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync
dd bs=1M count=128 if=/dev/zero of=test oflag=dsync
这四个命令的区别在于内存中写缓存的处理方式。
1.dd bs=1M count=128 if=/dev/zero of=test
没有加任何参数,dd默认的方式不包括“同步(sync)”命令。也就是说,dd命令完成前并没有让系统真正把文件写到磁盘上。所以以上命令只是单纯地把这128MB的数据读到内存缓冲当中(写缓存[write cache])。所以你得到的将是一个超级快的速度。因为其实dd给你的只是读取速度,直到dd完成后系统才开始真正往磁盘上写数据,但这个速度你是看不到了。所以如果这个速度很快,先不要偷着乐。
2.dd bs=1M count=128 if=/dev/zero of=test; sync
和前面1中的完全一样。分号隔开的只是先后两个独立的命令。当sync命令准备开始往磁盘上真正写入数据的时候,前面dd命令已经把错误的“写入速度”值显示在屏幕上了。所以你还是得不到真正的写入速度。
3.dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync
加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,所以这时候你得到的是读取这128M数据到内存并写入到磁盘上所需的时间,这样算出来的时间才是比较符合实际的。
4.dd bs=1M count=128 if=/dev/zero of=test oflag=dsync
加入这个参数后,dd在执行时每次都会进行同步写入操作。也就是说,这条命令每次读取1M后就要先把这1M写入磁盘,然后再读取下面这1M,一共重复128次。这可能是最慢的一种方式了,因为基本上没有用到写缓存(write cache)。
那我们到底应该用哪一种呢?建议使用dd bs=1M count=128 if=/dev/zero of=test conv=fdatasync
因为这种方式最接近计算机实际操作,所以测出来的数据最有参考价值。
转载请注明转自:kn007的个人博客的《合理化管理SWAP交互区》
我来沙发一个 我就是看看 不折腾vps 了 折腾来折腾去 还是那样! 网速觉得一切啊!
@所谓刚子: 发现你错别字今天好多啊。。。确实是网速决定一切,当你优化完了,就可以搞前端了。。。
不明觉厉,不过要占前排
@喂蚊大帝:
欢迎,国庆快乐
我又来了.....我是没用过什么vpS,不懂~~哈哈~~速度?什么是速度?速度就是打开百度首页的那个才叫速度~
@夜枫: 现在的百度速度一般吧。。
@kn007: 为啥你的回复速度这么快嗫~
用什么神器?
~现在在我这个能上QQ的局域网里百度百度的速度是我比较满意的,虽说用个十几秒~~为了提速,我直接把我的博客的域名和ip直填到hosts里了...
@夜枫: 优化后的效果。。。感觉我的速度与百度基本无差别。。我才8M的电信网络。
@kn007: 好吧~~那么给力~~虽说我所在的网络是50mb的光纤,但是得看什么时候用,有多少人用,每晚这个时候苦逼了,有人还会用p2p终结者,上QQ还是个问题呢~
@夜枫: 这么挫。。
@kn007: 哈哈~~~有的用~免费用~那就是幸福啊~~我也想买个Vps折腾一番~~嘿嘿~~
@夜枫: 好吧。。
国庆节快乐,我不对文章内容发表评论,因为看不懂。表打我,我不是灌水党。
@啄木游弋: 同乐同乐,我本身就是灌水党,所以灌水无罪,哈
哈,可以把你零碎写的VPS教程合集起来嘛
@Lar: 直接看tag或者categorie不就行了么。。
@kn007: 这样还得一个个打开呢..
@Lar: 因为VPS是个很大的类。。。合在一起并不现实
@kn007: 可以弄个新手入门之类的,一层层分下去,凑文章也是可以的
【邮件进 Spam 了
@Lar: 好吧。呵呵
@kn007: 呵前面的还是呵后面的
@Lar: 都有
就看看,不说话
@老猫Music: 国庆有没有带小猫咪去哪玩啊?
两个字:高端。
@徐大话: 大气上档次。。。
忙不忙?
@kn007: 低调奢华有内涵。。。。假装很忙的样子
@徐大话:
虽然不知道楼主在说什么,但是感觉很厉害的样子! 这是真心话!太合适不过了~
@Uncle.E:

@那时年少: 不明觉厉这个词,在我这里的频繁度好高啊
折腾吧
国庆应该出去玩
@天长地久: 准备下个月请假去玩,现在玩没意思,都是人