alluxio网络流量异常分析【转】
1. 介绍
最近在使用alluxio的时候发现了网络流量比较大。我们将MR程序运行在alluxio上,发现即使做好了mapper的data local仍然会存在比较多的异常流量。这部分网络IO会对性能造成比较大的影响。我将按照以下步骤来分析这个alluxio异常网络流量的问题。这个步骤也比较具备通用性。
- 确定流量消耗较大的端口:使用iftop和netstat确定流量消耗较大的进程和端口
- 抓包:使用tcpdump抓取流量较大端口的包
- 分析:使用winshark分析包内数据
2. 准备工作
2.1 tcpdump
在运行alluxio的各个节点上安装tcpdump。
yum install tcpdump
用法:
tcpdump -i 网络设备名 [可选的其他额外选项]
通过几个例子来了解tcpdump的主要用法:
#1. 获取10.8.12.16和10.8.12.17或者10.8.12.18在非80端口上通信的tcp包信息,并且以详细方式显示,再写入当前目录下的net.dump文件。注意host port信息放在最后
sudo tcpdump -vv -w net.dump host 10.8.12.16 and \(10.8.12.17 or 10.8.12.18\) and port ! 80 and tcp #2. src 和dsc用法,可以用在hostname或者端口前面。下面例子表示只抓取10.8.12.16为源,目标是80端口的数据包
tcpdump src host 10.8.12.16 and dst port 80
2.2 winshark
服务器上只有终端,我们在本地的win环境下安装下winshark.
2.3 安装iftop
iftop工具可以帮助我们定位哪些端口上的流量比较大,这样我们使用tcpdump的时候就更加的有针对性了。
关于iftop的安装使用可以参考我的另外一篇文章:iftop工具监控网络流量
2.4 alluxio网络通信相关的端口
alluxio是主从结构的,我们就监控下master 和worker之间通信的包信息即可。
alluxio相关的端口信息如下所示,主要是数据端口和非数据端口(元数据、心跳信息等)。
# 数据端口
alluxio.worker.data.port=29999
# worker非数据端口
alluxio.worker.port=29998
# master端口
alluxio.master.port=19998
3.iftop 锁定消耗流量最大的端口
我们在alluxio上运行一个MR程序,统计一个10G文件的行数。为了能准确定位真正的异常流量在哪,我们首先进行了多次实验来做预热,保证该10G文件在整个alluxio中能有足够的冗余块,保证mapper的数据本地化。
然后使用iftop工具分别监控master的19998端口和worker的29999端口和29998端口。
进入iftop可以按下l然后输入端口号来过滤结果。但是iftop最多统计40秒的值,所以截图不太方便,所以这里就只公布结果和部分截图:
- 无论是否进行预热,master 19998端口上的网络IO都十分小(小于50MB),对性能影响可忽略
- 无论是否进行数据预热,在worker节点的29999端口上会存在大量的网络IO,如下图所示。但是如果数据没有进行数据预热,29999端口上的网络IO会更大。例如10G数据进行统计行数,不进行数据预热,会有十几G的网络IO,而预热完整后,有2G不到的数据。
虽然MR JOB运行后显示map任务的data local已经全部做到了,但是仍然有约1.5G左右的网络IO。

4. dump数据
现在首先初步确定29999这个alluxio的数据端口是有流量异常的。根据alluxio上面的显示,块信息还没有在每个节点上都保留完整的一份。所以初步猜想可能还是在进行数据块的复制。
我们使用tcpdump抓取下。
使用命令
# 监控29999端口的流量,每个包64字节字节
sudo tcpdump -vv -w net.dump port 29999
# 监控所有经过网卡的包
sudo tcpdump -vv -w net.dump
5. winshark中加载看看
可以端口过滤看看,发现确实主要都是29999端口上的数据通信。
alluxio网络流量异常分析【转】的更多相关文章
- CentOS下使用Iptraf进行网络流量的分析笔记
CentOS下使用Iptraf进行网络流量的分析笔记 一.概述 Iptraf是一款linux环境下,监控网络流量的一款绝佳的免费小软件. 本博客其他随笔参考: Centos安装流量监控工具iftop笔 ...
- activeMQ消费消息时网络流量异常大的问题
http://www.cnblogs.com/baibaluo/archive/2012/12/24/2748468.html#2590289 公司有一个应用,多个线程从activeMQ中取消息,随着 ...
- CentOS 6.4 搭建 ntop 网络流量监控分析平台
[前言] Ntop是一种监控网络流量工具,用ntop显示网络的使用情况比其他一些网络管理软件更加直观.详细.Ntop甚至可以列出每个节点计算机的网络带宽利用率. 功能: 自动从网络中识别有用的信息: ...
- 使用WireShark进行网络流量安全分析
WireShark的过滤规则 伯克利包过滤(BPF)(应用在wireshark的捕获过滤器上) ** 伯克利包过滤中的限定符有下面的三种:** Type:这种限定符表示指代的对象,例如IP地址,子网或 ...
- 5-Spark高级数据分析-第五章 基于K均值聚类的网络流量异常检测
据我们所知,有‘已知的已知’,有些事,我们知道我们知道:我们也知道,有 ‘已知的未知’,也就是说,有些事,我们现在知道我们不知道.但是,同样存在‘不知的不知’——有些事,我们不知道我们不知道. 上一章 ...
- calico 网络流量 过程 分析 apt-get install telnet
1.calico node 容器在kubernetes中以DaemonSet 的方式运行,容器的网络模式为hostNetwor,与host共享网络栈,拥有相同的Ip和hostname 2.查看某个po ...
- 网络流量监控分析工具 Ntopng 安装
官方说明:http://packages.ntop.org/ http://packages.ntop.org/centos-stable/ http://packages.ntop.o ...
- 使用isolation forest进行dns网络流量异常检测
代码如下,测试发现,是否对输入数据进行归一化/标准化对于结果没有影响: import numpy as np from sklearn.ensemble import IsolationForest ...
- 网络流量分析——NPMD关注IT运维、识别宕机和运行不佳进行性能优化。智能化分析是关键-主动发现业务运行异常。科来做APT相关的安全分析
科来 做流量分析,同时也做了一些安全分析(偏APT)——参考其官网:http://www.colasoft.com.cn/cases-and-application/network-security- ...
随机推荐
- 基于 CoreText 实现高性能 UITableView
引起UITableView卡顿比较常见的原因有cell的层级过多.cell中有触发离屏渲染的代码(譬如:cornerRadius.maskToBounds 同时使用).像素是否对齐.是否使用UITab ...
- SpringMvc4中获取request、response对象的方法
springMVC4中获取request和response对象有以下两种简单易用的方法: 1.在control层获取 在control层中获取HttpServletRequest和HttpServle ...
- 对simhash算法的一些思考
http://2588084.blog.51cto.com/2578084/558873
- ML之监督学习算法之分类算法一 ——— 决策树算法
一.概述 决策树(decision tree)的一个重要任务是为了数据中所蕴含的知识信息,因此决策树可以使用不熟悉的数据集合,并从中提取出一系列规则,在这些机器根据数据创建规则时,就是机器学习的过程. ...
- 【SqlServer】SqlServer索引的创建、查看、删除
索引加快检索表中数据的方法,它对数据表中一个或者多个列的值进行结构排序,是数据库中一个非常有用的对象. 索引的创建 #1使用企业管理器创建 启动企业管理器--选择数据库------选在要创建索引的表- ...
- 【MySQL】mysql在Windows下使用mysqldump命令备份数据库
在cmd窗口中使用mysqldump命令首先需要配置环境变量 1,在计算机中找到MySQL的安装位置,找到MySQL Workbench,比如我的是C:\Program Files\MySQL\MyS ...
- xtrabackup-增量备份
增量备份之所以能工作是因为每个innodb的page都包含日志序列号(LSN).LSN是整个数据库的版本号. 增量备份会拷贝那些LSN比备份开始时新的页.有两种算法用来计算查找这些页:第一种,支持所有 ...
- High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
原文地址:https://www.codeproject.com/articles/14075/high-speed-charting-control 本文翻译在CodeProject上的介绍(主要还 ...
- iOS runtime执行时具体解释
什么是runtime? runtime直译就是执行时间,run(跑,执行) time(时间),网上大家都叫它执行时,它是一套比較底层的纯C语言API,属于一个C语言库,包括了非常多底层的C语言API, ...
- 还没被玩坏的robobrowser(4)——从页面上抓取感兴趣的内容
背景 本节的知识实际上是属于Beautiful Soup的内容. robobrowser支持Beautiful Soup,一般来说通过下面3个方法获取页面上感兴趣的内容 find find_all s ...