随笔分类 - programming c linux
摘要:今天测试部汇报了一个设备出现问题:” 8个1g电口 +8个1g光口+4个10g bp光口+4个10g非bp光口,其中有4个口没有up起来,ifconfig看不到接口“ 拿到这个问题我就在想:“怎样确定是不是只有4个网口没有up?ifconfig 只是一个查看内核虚拟设备,那么物理网卡设备呢? 怎样确
阅读全文
摘要:了解了基本 云原生架构,不清楚的查看之前的文章:https://www.cnblogs.com/codestack/p/13914134.html 现在来看看云原生平台tproxy waf引擎串联实现:也就是 报文劫持转发到对应的接口 本地socket捕获数据包 tproxy方式 iptables
阅读全文
摘要:概念: lstio Istio是一个用于服务治理的开放平台 Istio是一个Service Mesh形态的用于服务治理的开放平台 Istio是一个与Kubernetes紧密结合的适用于云原生场景的Service Mesh形态的用于服务治理的开放平 连接:Istio 通过集中配置的流量规则控制服务间的
阅读全文
摘要:读ngx 的一个问题? //这里应该再重新接收一次和NGINX一样,等待下一次循环(epoll)再进行,同时设置读写句柄,以便下次读取的时候直接进行握手 //单向认证四次握手过程还没有完成,需要继续握手 if (sslerr == SSL_ERROR_WANT_READ) { //# define
阅读全文
摘要:这是对引擎strace 的结果,可以看到引擎在回复报文的时, 频繁的使用write 系统调用,报文内容可以看到就是一个http响应报文, 正常情况应该是只会调用一次write回复报文,但是实际情况是调用了多次write回复报文,根据http报文的响应头、响应行等依次回复报文。 所以优化方式: 将多次
阅读全文
摘要:gdb 经常用 ,但今天使用gdb 调试的时候, break 打断点, 结果也没有打出 哪一行的信息,就只是提示一个具体地址。 使用单步调试 结果爆出 stepping until exit from function dpdk_device_input, which has no line num
阅读全文
摘要:直接出现僵尸进程 77个 瞬间傻逼了, 这是多么奇葩!! 赶紧看下 这些进程是啥 ps -elf |grep Z 查看 发现没 都是同一个, 其父进程也是同一个。 在回想一下 僵尸进程怎么产生的 进程退出的时候,其资源没有被回收,也就是 其task_struct资源没有被销毁。进程处理Z 状态。 所
阅读全文
摘要:可以看到 低优先级的进程 暂用了比较高的CPU时间。 top 命令中可以看到 NI 为19, 其优先级最低 但是使用cpu 最高。 说明这个进程需要经行优化了, 通过gdb 发现此进程一直都在处理报文,写缓存。 由于使用了dpdk, 此进程用来接收dpdk的报文数据解析。此时流量大约3-5g。 报文
阅读全文
摘要:目的 找出系统性能瓶颈(包括硬件瓶颈和软件瓶颈); 提供性能优化的方案(升级硬件?改进系统系统结构?); 达到合理的硬件和软件配置; 使系统资源使用达到最大的平衡。 CPU过渡使用会造成大量进程等待CPU资源,系统响应变慢,等待会造成进程数增加,进程增加又会造成内存使用增加,内存耗尽又会造成虚拟内存
阅读全文
摘要:怎么分析理解 uptime 以及top 中的cpu Load Average 最后三个数字依次表是过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average) Load Average:什么意思呢?? >是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数
阅读全文
摘要:今天在新入职的公司处理waf 的问题时,突然看到了一个tcp状态close-wait 想一想 close-wait 是怎样产生的???? 被动收到FIN 关闭请求,协议栈主动发出ACK, 等待 本端主动发出 FIN,但是本端一直没有执行CLOSE。也就是在被动关闭连接情况下,在已经接收到FIN,但是
阅读全文
摘要:查一个问题:结果看了一下软中断以及系统 所耗cpu,心中满是伤痕啊 perf 结果一眼可以看到:主要是锁 那么这个lock 是用来干什么的呢?? A:TCP socket的使用者有两种:进程(线程)和软中断。同一时间可能会有两个进程(线程),或位于不同CPU的两个软中断,或进程(线程)与软中断访问同
阅读全文
摘要:https://cloud.tencent.com/developer/article/1150971 前言 说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一个非常复杂的协议,其中有不少细节点让人头疼点。本文就是来说说这些头疼点的,浅谈一些TCP的疑难杂症。
阅读全文
摘要:init段 程序初始化入口代码,在main()之前运行。 bss段 BSS段属于静态内存分配。通常是指用来存放程序中未初始化的全局变量和未初始化的局部静态变量。未初始化的全局变量和未初始化的局部静态变量默认值是0,本来这些变量也可以放到data段的,但是因为它们都是0,所以它们在data段分配空间并
阅读全文
摘要:今天看代码的时候注意了一下 hash 以及看了下读书时候的笔记, 主要就是说: hash桶大小以及hash 算法 1、目前hash桶的大小都是素数(和2倍相近的一个素数) 设有一个哈希函数H( c ) = c % N;当N取一个合数时,最简单的例子是取2^n,比如说取2^3=8,这时候H( 1110
阅读全文
摘要:互斥:是指散布在不同进程之间的若干程序片段,当某个进程执行其中的一个程序片段时,其他进程就不能运行它们之中的任一程序片段,只能等到该进程运行完之后才可以继续运行。 同步:是指散布在不同进程之间的若干程序片段,它们的运行必须严格按照一定的先后次序来运行,这种次序依赖于要完成的任务 内核中的同步问题一般
阅读全文
摘要:__thread是GCC内置的线程局部存储设施,存取效率可以和全局变量相比。 __thread变量每一个线程有一份独立实体,各个线程的值互不干扰。可以用来修饰那些带有全局性且值可能变,但是又不值得用全局变量保护的变量。 今天看代码的时候发现这个工程喜欢用_thread关键字, 各个线程都有自己的一份
阅读全文