linux
柳清风09
这个作者很懒,什么都没留下…
展开
-
两个老年人的ssh小工具
在mac的终端中经常需要登录到多个终端,每个终端的IP地址不一样,记住那么多IP实在是一个让人头疼的事情,毕竟年龄大了,脑子开始不好使了。言归正传,第一我们可以使用 ~/.ssh/config 这个文件,Host webserver HostName 192.168.225.22 User timHost db HostName 192.168.225.23 User duncan然后我们就可以通过ssh命令直接登录目标机器了,如下所示:ssh webser原创 2020-12-14 09:22:50 · 383 阅读 · 1 评论 -
linux内核的oom score是咋算出来的
本篇文章主要和大家分享linux的oom_score的工作原理。关于kubernetes的Qos在之前的blog已经分享过了,感兴趣的童鞋可以去看一下。k8s的Qos底层便是依赖内核的OOM机制。linux的OOM killer是为了在内存不足的情况下,杀掉消耗内存最多、优先级最低的任务,从而保障系统不被搞挂。这里有两个取决因素:(1)oom_score内核通过内存消耗计算得出 (2)oom_...原创 2020-04-23 09:49:05 · 8187 阅读 · 2 评论 -
TCP漫谈之为啥需要timewait状态
tcp的状态状态转化图如下所示,其中Time_awit状态是CLOSED之前的一个状态,等待2个MSL时间。为啥需要time_awit状态呢?为啥不直接进入closed状态呢?这样不就能更快的释放资源给新的连接使用了吗?而是还需要等待2MSL(linux默认)时间。有两个原因,第一个原因是为了防止“迷路的数据包”,如下图所示,如果在第一个连接里面第三个数据包由于底层网络故障延迟送达。等待新的...原创 2020-03-30 16:47:20 · 821 阅读 · 0 评论 -
linux内核网络参数tcp_tw_recycle 和 tcp_tw_reuse 你搞清楚了吗?
今天在生产环境遇到了一个奇怪的网络现象,通过抓包发现,SYN包没有ACK。可以ping通,防火墙开放的情况下,基本确定对方服务器问题。首先排除端口是否已经耗尽,发现仍有很多富余那么可能就是linux内核网络参数tcp_tw_recycle捣鬼。登录对方主机发现这个参数的确被设置成1.# sysctl -a|grep tcp_tw_recyclenet.ipv4.tcp_tw_recycle...原创 2019-10-21 15:05:35 · 14415 阅读 · 0 评论 -
Linux操作系统拾遗之设备--概览
定义还是那句话,Linux一切皆文件,就行java一切皆对象一样。那么设备当然也是文件(设备文件)。这些文件并不关联到硬盘或者其他的存储介质上,而是建立了与某个设备驱动程序的连接,已支持扩展设备通信。就应用程序而言,普通文件和设备文件都可以通过库函数操作,只是块设备多了几个用于设备的命令罢了。分类打开Linux的dev目录下可以看到sudo ls -l /dev/sdabr...原创 2018-05-31 16:52:23 · 559 阅读 · 0 评论 -
记录一次奇怪的tcpdump
tmpdump在我们日常的工作中经常使用,先介绍一下基本使用tcpdump -i eth0 icmp-i 是指定网卡, icmp是协议。 还有一些其他常用参数譬如 -b在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。tcpdump -b arp 将只显示网络中的arp即地址转换协议信息;-l使标准输出变为缓冲行形式,如tcpdump -l >...原创 2018-08-15 08:21:21 · 3071 阅读 · 0 评论 -
Docker 问题汇总
没法退出问题当我们通过exec进入docker容器后,执行完一大堆命令后执行exit退出发现没法退出,一直提示There are stopped jobs其实这个和docker本身没有关系,是控制台关联的后端程序没有停止,子程序没有退出 可以通过jobs命令查看后端任务。 ps 找出相关的进程,然后关闭即可...原创 2018-08-23 18:42:32 · 2368 阅读 · 0 评论 -
linux的网络hack用法之arp
arp我们都知道arp协议在网络中重要位置,如果没有arp整个二层和三层的网络将全部瘫痪,那么linux 内核在arp上面有哪些细节和特殊用法吗,下面我们逐一介绍 首先看一下各种状态 这里我们看到arp表所有的状态信息,我特地标注黄色的stale状态是一个最特殊的状态。 然后再看看各个状态的切换图 首先是arp的表的配置在/proc/sys/net/ipv4/neigh/*...原创 2018-09-03 10:23:26 · 1480 阅读 · 1 评论 -
linux网络hack用法之onlink路由
在单网卡机器上,如果配置eth0的地址为192.168.40.249/32,那么别指望用常规的方式添加任何路由,这是因为链路层直连路由已经不存在了,我们如下的尝试: route add -net 192.168.0.0/16 gw 192.168.40.254 将失败,因为网关地址并不和本地地址同在任何一个网段,那么如何是好呢?Linux的iproute2工具包提供了一个onlink参数,可以...原创 2018-09-12 10:53:54 · 6322 阅读 · 0 评论 -
磨刀不误砍柴工(1)stress 和 pidstat
stress命令stress命令是一个常用的压测工具常用参数解析:-t指定超时时间 -t, --timeout N 超时时间,指定stress执行多长时间 -c, --cpu N 启动N个线程执行开方操作,目的就是把这N个核跑满 -i, --io N 启动N个线程执行sync()操作刷磁盘 -m, --vm N 启动N个线程执行malloc()/free(...原创 2019-03-23 11:48:26 · 827 阅读 · 0 评论 -
压测iptables规则条数的限制
ab -c 100 -n 10000 10.52.136.35:30088/say This is ApacheBench, Version 2.3 <Revision:1430300Revision:1430300Revision: 1430300 > Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeust...原创 2018-05-18 21:17:16 · 4581 阅读 · 0 评论 -
理解函数调用
在函数调用过程中,需要切换堆栈, 先介绍几个常用的寄存器 ESP 堆栈指针寄存器,这个寄存器指向当前堆栈的栈顶 EBP 堆栈基地址寄存器,这个寄存器指向堆栈的栈底 EIP 指令寄存器,保存了下一条指令的地址有了上面的铺垫,开始接受当函数调用时候指向CALL以及返回RET时候堆栈的状态, 当执行CALL的时候cs:eip以及指向了函数调用后的下一条指令,此时需要将cs:eip压入...原创 2018-05-17 10:00:09 · 705 阅读 · 0 评论 -
arping 报错
linux下面arping的使用原创 2014-12-29 15:26:57 · 3094 阅读 · 1 评论 -
Floodlight源码阅读之网络拓扑
在上一篇文章中介绍Floodlight怎样做拓扑发现,这篇文章介绍一下网络拓扑是怎样形成的。TopologyManager这个类负责网络拓扑的产生。这个类首先实现了IFloodlightModule这个接口,是Floodlight的一个模块。其实是实现了ILinkDiscoveryListener用于监听网络中链路的变化;还实现了IOFMessageListener用于接收和处理网络包。和其他原创 2016-06-17 15:48:23 · 40097 阅读 · 0 评论 -
kubernetes源码阅读之kubelet启动
kubernetes源码阅读之kubelet启动原创 2016-08-19 16:30:13 · 38798 阅读 · 0 评论 -
深入理解操作系统之总体概括
操作系统概括原创 2016-11-07 17:07:53 · 8483 阅读 · 0 评论 -
iptables 日志拦截
IPtable是Linux防火墙,有个非常重要的图和大家分享一下: 上面的图详细介绍了IPtables数据流向,非常直观。 当规则很多的时候很难确定哪些链被使用了,iptables支持log动作,下面是自己使用例子iptables -t raw -I OUTPUT -d 10.254.51.153 -j LOG --log-level 7 --log-prefix "raw out: "i原创 2017-04-06 19:21:56 · 10035 阅读 · 1 评论 -
每天理解一点Linux内核之地址映射
我们知道Linux内核对内存的管理主要都是通过分页来完成的,那么实际的物理页和虚拟页是怎样的对应的。这篇blog我们试图去聊着这个机制。1.虚拟地址划分32位地址意味着4G的虚存空间,Linux内核将这4G的空间分成两个部分,将高的1G字节(0xC00000000-0xFFFFFFFF)用于内核本身,成为系统空间。而较低的3G字节作为各个进程的用户空间,这样理论上各个进程都可以使用空间...原创 2018-04-10 17:09:00 · 947 阅读 · 0 评论 -
每天理解一点Linux内核之高端地址映射
上一篇介绍了0.12版本内核地址映射线性地址和物理地址是通过减去0xC0000000互相转化的,但是这里存在一个问题的,那就是内核只能读取1G的内存,即便物理内存大于4G空间,这样不就浪费了吗?那么对于高端内存,32位系统是怎么解决的呢?如果是64为系统,这个问题肯定是不存在的,因为它可以读取到512G的内存,通常是够的,回到之前的问题,那么32位的怎么处理呢? 先回顾之前的地址映射 上面...原创 2018-04-11 11:10:28 · 1237 阅读 · 0 评论 -
每天理解一点Linux内核之进程的四个要素
1.程序程序是静态的代码,而进程是运行的程序。程序好比是剧本,而进程就是戏,戏是按照剧本演的。2.私有财产每个进程都有自己专有的系统堆栈空间3.户口在内核中有一个task_struct数据结构,操作系统里面通常叫做进程控制块PCB,有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核调度,并且它记录进程所占用的各项资源4.独立存储空间拥有专有的用户空间,意味着进...原创 2018-04-11 13:18:15 · 872 阅读 · 0 评论 -
扇区和文件对应关系
文件系统块和内存页在说fdisk之前,先说一下操作系统通过分页的方式使用内存,文件系统通过block使用存储,那么他们大小怎么获取呢 首先是获取内存分页大小# getconf PAGESIZE4096然后是获取系统block大小# sudo /sbin/tune2fs -l /dev/vda1|grep "Block size" Block size: ...原创 2018-04-11 18:51:07 · 4978 阅读 · 0 评论 -
磁盘速度监控
磁盘测速原创 2015-01-06 14:49:06 · 909 阅读 · 0 评论