自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 2017.7 新的启航

自大四上期保研结束,我就淡出了江湖,时常读点闲书调养身心。三年后的现在,来到腾讯,深感牛人重视分享。想起硕士阶段也算零零碎碎积攒了不少知识,该整理一下并发表出来了,和大家增进一些交流。这些文字本是给我自己写的,稍加润色,其实还是更适合自己读,惭愧。内容主要是网络,Linux,设备管理,Mac。

2017-07-12 14:53:05 381 1

原创 名可名,非常名——两种”软件中断“

Intel IA-32手册上把INT x称为软件中断(software interrupt)。然而我意识到softirq其实也是software interrupt的简写,这两者虽“同名”,但不是一回事。spin_lock_bh如它的名字,禁用的是包括softirq在内的bottom half,而不是INT x。

2017-08-14 21:37:22 421

原创 在10Gbps网络下开启Huawei CE6850交换机的ECN功能并实验DCTCP协议

1.  准备知识1.1  Iperf命令假设iperf服务端为主机tian04,使用TCP协议,那么在控制台执行以下两个命令开启服务器进程。iperf-s -p 12000 -i1iperf-s -p 12001 -i1假设iperf客户端为主机tian05,tian06。注意,与1G的实验环境使用的命令不同,当关闭网卡TSO、GSO时,R320服务器无法使用一个进程达到满带宽

2017-07-12 16:52:02 4150

原创 关于Arista DCS 7048交换机不支持ECN功能的说明

备注:以下提到的参考文档指的是官方文档EOSSystem Configuration Guide (EOS-4.15.0F-Manual).pdf.一、EOS版本提示使用命令showversion,选取部分结果如下:参考文档的EOS版本为4.15,而我们使用的版本是4.12,可能会带来一些差异。二、Determining a Switch’s Operating Pla

2017-07-12 14:52:24 892

原创 【网络实验】10G网络下的真实带宽——CPU负载与网卡TSO、GSO

操作系统采用Ubuntu 14.04,CPU有4物理核8逻辑核。10G网卡为Intel X520。关掉主机网卡的TSO、GSO功能。sudo ethtool –K p1p1 tso offsudo ethtool –K p1p1 gso offiperf服务器端使用10G网卡,执行iperf -s -p 12003 -i1客户端多次执行如下命令,但每次启动的进程数会变化:

2017-07-11 11:34:30 5490

原创 Xshell和pdsh工具的使用

一、XshellXshell是Xmanager中的一个工具程序,可以方便的管理SSH会话。我们介绍一种配置Xshell的方法,使得每次建立远程连接不需要再输入繁琐的命令和用户密码。以连接跳板机为例。点击 文件—>新建 进入 新建会话属性 界面。作者做的配置如以下两图所示,具体参数需要结合机房网络拓扑理解。第二张图中的跳板机用户名和密码是向机房管理员申请后获得的。

2017-07-11 10:56:32 700

原创 使用串口转USB线配置交换机方法

1. 将 串口转USB线 的串口端插入交换机管理串口2. 将线的USB端插入主机的USB口3. 在主机上执行 ls /dev/ttyUSB* 查询设备名4. 在主机使用sudo minicom -s打开minicom主界面5. 选择Serial port setup,在Serial Device中填入刚查到的设备名6. 其他选项的配置依据各个交换机的说明手册具体配置7. 配

2017-07-11 10:49:37 4299

原创 DELL R730 iDRAC与IPMI的使用

一、简介iDRAC卡相当于附加在服务器上的一台小电脑,通过与服务器主板上的管理芯片BMC进行通信,远程监控与管理服务器的硬件状态信息。当前可用的官网详细介绍请参考:http://zh.community.dell.com/techcenter/w/techcenter_wiki/189.idrac-7这些工作原本由IPMI实现,当前版本为2.0。DELL的iDRAC封装了IPMI的功能,它

2017-07-11 10:31:54 35957 1

原创 【网络实验】IP identification字段与TSO,GRO

IP头的identification的值由IP层维持的计数器产生,每产生一个数据包,计数器就加1,,并赋值给ID。ID并不是序号,因为IP是无连接服务。在IP分片(fragmentation)时,此值将被复制到各个片的ID,这样能使各个片最终能被重新组装为原来的数据包。一 、在开启TSO后,内核每次发送大包,观察到连续两个大包的ID值和MTU、大包大小有关。Iperf TCP发包如下图

2017-07-11 00:27:52 4686 1

原创 【网络实验】TSO的大包和GRO的大包是否为一一对应关系

答案:不是。以下分别给出发送方和接收方的wireshark抓包情况。发送方:接收方:可以看到,发送方33和34两个大包被接收方合成了33号大包。备注:发送方TCP checksum没有计算是因为TSO。截图时,接收方忘了开启wireshark的TCP checksum验证。事实上,开启TSO后,发包的那方在wireshark中的看到的总是TCP chec

2017-07-10 23:15:41 761

原创 【网络实验】IP checksum的变化规律

在某次TCP反复重传中,观察IP checksum的变化规律。由于只有identification在增加,可以发现checksum的值在减小。这其实和checksum的反码计算有关,参考谢希仁《计算机网络》4.2节首部检验和的计算:先把IP首部划分成16位字的序列,并把checksum置0. 用反码运算把所有16位字相加后,把得到的结果求反码写入检验和。第1个数据包:

2017-07-10 22:56:39 795

原创 【网络实验】TCP重传时间的规律

两台Ubuntu Server,采用Cubic TCP协议通信。故意让接收方丢弃iperf报文。重传时间分别为1s,2s,4s,8s,16s,以此类推。理论依据是RFC 6298,RTO的初始值设定为1s 。参考2.1节内容:Until a round-trip time (RTT) measurement has been made for a segment s

2017-07-10 22:27:53 1358

原创 【网络实验】非法(不按RFC标准)修改skb数据包遇到的现象

为论文做Linux内核编程实验总能遇到一些神奇的现象,现记录如下。一、修改IP Fragment Offset(失败)根据导师的需求,我在Netfilter Local Out钩子函数中把13bit fragment offset填为自定义的数据,同时保证flag DF位=1,即“不能分片”(Don‘t Fragment),希望各种网络软硬件设施能允许我发送这样的包。我装载

2017-07-10 22:15:21 1247

原创 【网络实验】TCP timestamp的精度

需要主动开启时间戳选项,命令为:sysctl net.ipv4.tcp_timestamps=1实验发现精度太低,太多的包采用同样的值,这样不便于实现基于时间戳识别数据包的功能。随手摘录网上其他的人写的文档:双方各自维护自己的时间戳,时间戳的值随时间单调递增(规定为1ms-1s/次,常见值为1ms、10ms)。

2017-07-09 00:50:22 989

原创 使用ping命令快速测试MTU设置是否成功

主机设置MTU: ip link set p4p2(interface) mtu 1500  或者 ifconfig p4p2 mtu 1500这里略去交换机设置MTU,因为命令随厂商的不同而不同,请参考手册。检测:ping -M do -c 4 -s 8972 192.168.X.Y故意发出8972字节+8字节ICMP头部的包。-M do是关键,不允许分片。此时报错信

2017-06-25 17:51:42 5114

原创 缓解tcpdump丢包的方法

在高速网络(10Gbps及以上)中运行tcpdump,XXX packets dropped by kernel是十分常见的现象。有两个方法缓解,都是在缓冲区方面下功夫:1. 使用-s参数,比如-s 80,这样每个包只抓40个字节。2. 使用-B参数,增加缓冲区大小。

2017-06-25 17:46:28 1234

原创 实验常用的ethtool命令

网卡点灯是最让我兴奋的命令,在进入机房时能帮助我找网卡所插位置 ethtool --identify eth2 20看到很多网络接口的offload特性:ethtool -k eth_name控制开关 以下为打开,关闭GRO,GSO,TSOsudo ethtool -K em2 gro onsudo ethtool -K em2 gso

2017-06-25 17:40:34 1519

原创 机房交换机基础配置 -- Mellanox SN2700

以下出现的章节名采用配置手册中的。# 基础配置hostname switch-sn2700-rack1 (2号机架)hostname switch-sn2700-rack2 (3号机架)4.1 Management Interface4.1.1static IP 192.168.X.Y/24 (2号机架)static IP 192.168.M.N/24 (3

2017-06-25 17:36:34 5457

原创 机房交换机基础配置 -- HUAWEI CE6850

# 配置管理网的ipsystem-viewinterface MEth0/0/0 ip address 192.168.X.Y 255.255.255.0commit返回用户视图,输入save命令,保存为XX.cfg# 配置远程登录用户名密码本交换机从console登录只需要提供用户名,不需要密码远程登录(telnet/SSH)则需要手动

2017-06-25 15:13:44 2936

原创 机房交换机基础配置 -- Pica8

# 基础配置set interface  management-ethernet eth0 address 192.168.X.Y/24    #pica 2.3.3set interface  management-ethernet eth0 gateway 192.168.M.N      #pica 2.3.3# 模式转换$cli

2017-06-25 15:04:07 2705

原创 机房管理遇到过的问题 & 经验谈

1. 从路由器设定静态IP到服务器设定静态IP最初,机房里的Ubuntu Server服务器/etc/network/interfaces下写的是auto em1 iface em1 inet dhcp然后在路由器的"静态IP地址分配"中写好该服务器的MAC和设定的IP。然而,随着机器的增多,我发现机房中所用的TP-LINK路由器最多只能写32条静态IP分配规则。于

2017-06-25 14:40:21 586

原创 《大数据时代》书籍概要 & 个人对大数据与人工智能的看法

对事物的认识是一个漫长的过程。想当初我在大三,并不了解大数据、人工智能,因此我充满了、好奇,渴望去了解。《大数据时代》这本书就是当时读的。而今硕士已经念完两年,我对学术论文的创新与实用性有了更多的认识,各种AI的传奇故事已经听得略感厌倦。作为一个系统工程师,看起来并不需要懂太多AI和大数据的知识,不过我觉得学习它们是有好处的。仅仅掌握机器学习算法与MapReduce的基本原理,我就不会感到迷茫。毕

2017-06-24 22:29:54 973

原创 图灵测试——与Emacs Doctor对话

在学习《形式语言与自动机》时,我上网搜索“图灵测试”,无意中发现emacs中有一个早期的人工智能:doctor。一时来了兴趣,我决定和TA对话一下。全文如下,偶数行是我写的,奇数行是doctor说的话。可以看出TA的智能程度不过如此。最后一句话“I would appreciate it if you would continue”是这个程序词穷后的答复之一。各位看

2017-06-24 21:03:18 998

原创 《高效能人士的七个习惯》书籍概要

写在前面无论是本书作者史蒂芬·柯维还是彼得·德鲁克,在谈到管理时,都先强调自我管理。我深以为然,管不好自己的人不可能管好别人。《高效能人士的七个习惯》讲解了如何自我管理,在学习工作中牢记并运用,我觉得有收获,希望能坚持这些习惯。《如何阅读一本书》告诉我们,读书时要主动理清书的框架结构。以下便是我读完后所写。零、变化的世界,不变的原则 人们遇到的问题:恐惧感和不安感;我现在就

2017-06-24 20:32:15 1056

原创 iTerm2的个人使用

*特性:选中即复制在preference - keys自定义了如下快捷键自定义 shift+space 全屏时快速呼入呼出为了和Linux下Byobu行为一致,我自定义了如下快捷键。这些快捷键可能和macOS系统中的快捷键profiles - keys中冲突,我删除了冲突项。cmd + t 新建标签页 cmd + 数字/方向键 标签页切换。我修改Previous T

2017-06-24 17:24:21 614 1

原创 我配置的 Oh my zsh

设定命令提示符(prompt)cd .oh-my-zsh/themesvim robbyrussell.zsh-theme修改PROMPT,注意,不同于bash使用\,zsh使用%,其中完整目录名为%d。PROMPT='${ret_status} %{$fg[cyan]%}%d%{$reset_color%} $(git_prompt_info)'source .zshrc

2017-06-24 17:17:15 384

原创 从内核上初步对比macOS和Linux

macOS内核源码官方链接https://opensource.apple.com/内核概述(我觉得有意思的部分)OS X:完整操作系统内核:Darwin 包含 XNU (混合式内核,包含1. Mach微内核,2. BSD层建立在Mach之上,3. I/O kit). 有趣的是,XNU's Not Unix.XNU给用户态主要提供BSD的接口,不仅有POSIX兼容的系统

2017-06-24 17:13:28 3254

原创 引起我注意的mac命令 & 我对macOS配置的修改

命令如下1. chflags 其中hidden属性控制文件或目录是否隐藏2. caffeinate 防MacBook Pro休眠的工具,我已设置caf='caffeinate -u -t ',这样每次使用时只要输入caf [seconds]控制不休眠的秒数。3. defaults 访问defaults system来更改用户配置4. diskutil (list, info)5

2017-06-24 16:56:18 868

原创 本人经常使用的Mac快捷键

系统级快捷键空格 预览,简单信息(quick look)回车 重命名ctrl + 单击 右键fn + delete 反向删除,option + delete 删除单词,cmd + delete 删除行F11 显示桌面cmd+option+ESC 退出应用cmd+shift+3/4 截屏 (增加ctrl时保存在剪贴板)cmd+, 打开偏好设置拖移时按option:

2017-06-24 16:50:17 249

原创 网络字节序与字节内比特序

一、网络字节序(上图来自网络,侵删)本次讨论以IP首部ip.h为例。struct ip {#if BYTE_ORDER == LITTLE_ENDIANu_char ip_hl:4, /* header length */ip_v:4; /* version */#endif#if BYTE_ORDER == BIG_ENDIANu_char

2017-06-23 20:47:15 543

原创 Mellanox CX4网卡SMP affinity的奇怪现象

做Mellanox网卡实验时遇到了一个奇怪的现象。注意,我在实验中关闭了超线程,以下的讨论均为CPU真核。在关闭irqbalance的情况下,我注意到设置/proc/irq/irq_num/smp_affinity或smp_affinity_list(两者等价)之后,实际上中断仍然只由smp_affinity_list中的第一个CPU处理。查找官方文档,在Mellanox的《What is

2017-06-22 12:08:05 1440

原创 /proc/cpuinfo 重要字段意义

在实验室机器执行cat /proc/cpuinfo,部分截图如下:processor编号从0-39,最终确定这是逻辑CPU的个数processor 0-9,20-29的physical id为0processor10-19,30-39的physical id为1故CPU物理芯片数为2注意到cpu cores数量为10,也就是每个物理CPU

2017-06-22 11:54:35 688

原创 Linux下NUMA相关

查询网卡在哪个NUMA node上:cat /sys/class/net/p4p2(name)/device/numa_nodemst status -v (mellanox网卡独有,安装CX4驱动以及工具程序后获得)CPU在哪个NUMA node上:lscpu查询NUMA node0 上的CPU:cat /sys

2017-06-22 10:41:54 1218

原创 对Wine说再见,拥抱Understand

在Ubuntu 14.04下使用wine运行source insight时出现崩溃。重装source insight或wine都不行。作为MacBook Pro用户,我决定找找mac下有哪些看源码的好软件,最后打算使用Understand。界面如下:从此可以愉快的看Linux源码了!

2017-06-20 00:41:19 340

原创 Linux用户的那些事

1. Ubuntu创建用户时默认不会生成home目录,也不指定shell,很无语。sudo useradd -m -s /bin/bash xxxx 强制创建home目录,同时指定shell。Redhat和CentOS就没这个烦恼。2. 如果给shell设为/usr/sbin/nologin,那么执行su - username时会出现This account is curren

2017-06-20 00:07:22 170

转载 关闭VISUAL STUDIO 2010 的ipch目录与sdf文件

visual studio 2010 中新建一个项目会同时建立一个ipch目录与sdf文件,即使你删掉它,再次打开工程时还是会重新建立。动辄30、50M的容量让我们心里很不爽。其实这是2010的一个新功能,与智能提示,错误提示,代码恢复、团队本地仓库等等息息相关的东西。如果大家觉得很不爽可以关掉它。Tools —— Options —— Text Editor —— C/C++ —— Advanc

2014-06-04 08:50:02 530

转载 判断给定的二叉树是否为二叉排序树

这是CSDN博主Hackbuteer1的文章!学习一下。思路:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。递归遍历就可以了,反正就是左孩子的key比根节点的key小,右孩子的key比根节点的key大,一旦有不满足条件的就判定不是。完整的代码如

2013-05-25 23:39:51 1245

转载 error无法打开预编译头文件的解决方法及预编译头原理

1。用VC.NET编辑程序,按Ctrl+F7,出现下列错误:fatal error C1083: 无法打开预编译头文件:“Debug/UGFace.pch”: No such file or directory 解决方法:修改:项目->属性->C/C++ ->预编译头->不使用预编译头 即可。2。学用Visual C++ 6.0的第一个例程就让我出了错.用向导生成第一个基于

2012-03-06 10:21:10 426

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除