随着信息化建设的迅速发展,为了更好的、有效的保障系统上线后稳定高效运行,在上线前都会对其服务端进行各种压力测试,例如单交易负载测试、混合综合场景压力测试、稳定性测试、浪涌测试、端到端非功能测试等全链路非功能性测试,目的是为了在上线把各种怀疑性技术性问题等排查清楚。因此在最基本的全链路非功测试过程中,对于服务器的资源使用情况、带宽、网络、磁盘、进程、数据或日志存储文件目录使用情况等进行可靠和可持续的监控,统计分析在压力测试过程中的各种数据,从而能及时发现问题原因,并快速定位解决。例如数据库的数据量大、CPU高、IO高等等
而做为非功能测试人员在做压力测试过程中最希望能使用一个简易而且直观的、集中、统一、自动监控工具来协助我们快速定位分析和对历史数据的对比。如Netdata。
Netdata是一款轻量级的适用于linux的服务器性能监控工具,主要优势在于运行速度快、配置简单,能实时的资源监控工具,它拥有基于 web 的友好界面,UI简洁,可以通过图表来了解 CPU,RAM,硬盘,网络,Apache, Postfix 等软硬件的资源使用情况,像绝大多数常用的图表数据(CPU,RAM,网络和硬盘)都在顶部。如果你想深入了解图形化数据,你只需要下滑滚动条,或者点击在右边菜单的项目。通过每个图表的右下方的按钮, Netdata 还能让你控制图表的显示,重置,缩放。
工具安装说明
切换到root权限:
yum install zlib-devel gcc make git autoconf autogen guile-devel automake pkgconfig -y
yum install libuuid-devel zlib-devel -y
wget https://github.com/netdata/netdata/releases/download/v1.11.1/netdata-v1.11.1.tar.gz
tar -xzf netdata-v1.11.1.tar.gz
cd netdata-1.11.1_rolling/
./netdata-installer.sh
有提示 按回车

To stop netdata run:
systemctl stop netdata
To start netdata run:
systemctl start netdata

资源监控篇:
如下图是对系统全景式各类资源使用时效性仪表图
全链路非功能测试之服务端性能监控篇_第1张图片
对于CPU使用情况如下,可以看整个服务器CPU平均使用情况,
全链路非功能测试之服务端性能监控篇_第2张图片
如果想细化看看各个CPU具体是什么问题引起的,例如是用户还是system导致CPU高的,具体有几个线程的CPU在忙碌可以如下方式监控:
全链路非功能测试之服务端性能监控篇_第3张图片
类似nmon方式也很直观
全链路非功能测试之服务端性能监控篇_第4张图片
磁盘IO监控:
众所周知,磁盘IO使用是影响数据库性能最大因素,因为磁盘种类繁多,设计的差异性对IO影响巨大,最终对性能影响非常大,例如SSD 和普通7200转的机械硬盘在读写吞吐方面存在多倍的差异性。
全链路非功能测试之服务端性能监控篇_第5张图片
全链路非功能测试之服务端性能监控篇_第6张图片
网络监控:
全链路非功能测试之服务端性能监控篇_第7张图片
而网络中的协议选择也是问题,监控更是难点,目前 市面上存在IPV4 和IPV6 两种互联网协议使用 ,我们在监控过程中有时要进行网卡吞吐量情况监控,有些也要对两种协议使用会进行对比下压测选型,
IPV6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速
而IPv4是用于分组交换网络的无连接协议。它以尽力交付模式运行,因为它不保证交付,也不保证正确排序或避免重复交付。这些方面(包括数据完整性)由上层传输协议(例如传输控制协议(TCP))解决。
不同协议有不同的用途,但是我们在做性能测试过程如果进行监控对比有时或束手无策,而Netdata 在这方面做得不错,提供两种类型的监控。

全链路非功能测试之服务端性能监控篇_第8张图片
全链路非功能测试之服务端性能监控篇_第9张图片
存储文件使用情况监控
而我们一般会关注磁盘总体使用情况监控,而我们有时会使用多磁盘方式来存放不同类型的数据,例如数据库的数据存储防砸sda、日志存储在sdb、逻辑备份等存放在sdc等情况,

全链路非功能测试之服务端性能监控篇_第10张图片
如下我们postgres的数据存储在home目录下
全链路非功能测试之服务端性能监控篇
全链路非功能测试之服务端性能监控篇_第11张图片
更多功能,期待你去挖掘!!!