一、Linux 服务器性能测试工具 LemonBench 的应用实践
对服务器进行评测可以找一些跑分和测评脚本工具,常用Linux综合测试脚本工具有。Bench(最早的),Superbench,ZBench,LemonBench,SpeedTest。
1. LemonBench 脚本的使用
其中LemonBench这个脚本是最近很多人喜欢使用的,因为功能和测试参数比较多
LemonBench命令使用起来非常简单高效,只需要执行一个命令即可,可以通过curl或者wget下载然后执行命令,如下:
#通过下面任何一个命令可以查看lemonBench的自定义测试选项
curl -fsSL https://ilemonra.in/LemonBenchIntl | bash
wget -qO- https://ilemonra.in/LemonBenchIntl | bash
LemonBench快速测试
#以下curl和wget方式都行
curl -fsSL https://ilemonra.in/LemonBenchIntl | bash -s fast
wget -qO- https://ilemonra.in/LemonBenchIntl | bash -s fast
LemonBench完整测试
#以下curl和wget方式都行
curl -fsSL https://ilemonra.in/LemonBenchIntl | bash -s full
wget -qO- https://ilemonra.in/LemonBenchIntl | bash -s full
2. LemonBench命令更多选项:
-f, --fast, fast 执行快速测试
-F, --full, full 执行完整测试
spfast, --speedtest-fast 仅执行Speedtest网速测试 (快速测试)
spfull, --speedtest-full 仅执行Speedtest网速测试 (完整测试)
dtfast, --disktest-fast 仅执行磁盘性能测试 (快速测试)
dtfull, --disktest-full 仅执行磁盘性能测试 (完整测试)
btfast, --besttrace-fast 仅执行路由追踪测试 (快速测试)
btfull, --besttrace-full 仅执行路由追踪测试 (完整测试)
spf, --spoofer 仅执行Spoofer测试
sbcfast, --sbcfast 仅执行CPU性能测试 (快速模式)
sbcfull, --sbcfull 仅执行CPU性能测试 (标准模式)
二、 linux服务器内存占用越来越多的手动释放处理
今天在对服务器的压力测试过程中发现内存占用越来越多,由原来的28G(总内存32G)减少到15G,但压测的接口里并没有其它占用内存的东西,无非是对REDIS的数据存取。但是
1,查看REDIS的内存占用高峰,峰值也才40几M而已。
2,查看内存占用排前10的进程,最高的是MYSQL ,占用了12%,其它的都是NGINX。但NGINX每个也只占了0.1%。
看到了一篇文章:http://blog.csdn.net/jiayanhui2877/article/details/11615269
[root@server test]# cat /proc/sys/vm/drop_caches
0
[root@server test]# sync
[root@server test]# echo 3 > /proc/sys/vm/drop_caches
[root@server test]# cat /proc/sys/vm/drop_caches
3
尝试着手动执行了上面的命令后,再查看发现内存正常了。可既然这些内存能够安全释放,为什么没有自动释放呢?原来Linux内存管理采取了两种主要Cache方式:
Buffer Cache:A buffer is something that has yet to be "written" to disk.
Page Cache:A cache is something that has been "read" from the disk and stored for later use.
目的就是为了提升磁盘IO的性能。从低速的块设备上读取数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,它可以从内存中直接读取,从而绕开低速的块设备,从而提高系统的整体性能。而Linux会充分利用这些空闲的内存,设计思想是内存空闲还不如拿来多缓存一些数据,等下次程序再次访问这些数据速度就快了,而如果程序要使用内存而系统中内存又不足时,这时不是使用交换分区,而是快速回收部分缓存,将它们留给用户程序使用。