Recent Posts
-
April 27, 2020
Linux内核rfs和skb_get_hash
https://www.kernel.org/doc/Documentation/networking/scaling.txt驱动层会设置skb hash,这个在很多地方都会用到,比如fq_codel 算法里面https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/intel/igb/igb_main.c#L8184static inline void igb_rx_hash(struct igb_ring *...
-
April 27, 2020
Linux内核的tcp bbr和tcp pacing
https://groups.google.com/forum/#!topic/bbr-dev/4jL4ropdOV8https://patchwork.ozlabs.org/project/netdev/patch/20170516112436.10189-1-edumazet@google.com/https://elixir.bootlin.com/linux/latest/source/net/ipv4/tcp_output.c#L2298TCP的BBR算法是要求tcp pacin...
-
April 24, 2020
Linux内核的static_key系列函数和cpu分支预测优化
https://github.com/torvalds/linux/blob/master/Documentation/static-keys.txt这个 static_branch_likely() static_branch_unlikely() 有点像likely和unlikely,但不像likely这个其实完全避免了分支指令了,全部插入nop指令了,然后修改变量的值的时候才把nop替换为跳转到不同分支的指令,非常有意思。 之前看有一个说内核的ftrace就是用类似的技术实现的吧。
-
December 19, 2019
Influxdb数据库的基本sql查询的语法
参考 https://docs.influxdata.com/influxdb/v1.7/query_language/influx -ssl -unsafeSsl # 连接数据库influx -ssl -unsafeSsl -precision rfc3339 # 指定默认时间格式> auth # 用户名认证> show databases # 查看数据库> use <database-name> # 选择数据库> show measurem...
-
November 23, 2019
Linux内核的死锁检测
内核文档比较详细https://www.kernel.org/doc/html/latest/admin-guide/lockup-watchdogs.htmlnmi watchdog[root@localhost ~]# cat /proc/sys/kernel/nmi_watchdog1[root@localhost ~]# cat /proc/sys/kernel/softlockup_panic0[root@localhost ~]# cat /proc/sys/kernel/ha...
-
November 06, 2019
Linux的cpuinfo和cpufreq设置cpu工作于性能模式还是低功耗省电模式
发现有的系统cat /proc/cpuinfo里面的“cpu MHz” 比实际的低,原来除了睿频的,cpu还支持低功耗模式,也会降频的,可以看 /sys/devices/system/cpu/cpu0/cpufreq/ 这里面的输出,好像intel的有的cpu不支持睿频但可以支持几个步进的频率这种。/sys/module/ipses/parameters # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 1332800/...
-
October 16, 2019
Centos7编译源码包rpm Src
1.wget http://vault.centos.org/7.7.1908/os/Source/SPackages/iproute-4.11.0-25.el7.src.rpm2.rpm -i iproute-4.11.0-25.el7.src.rpmyum install iptables-devel libmnl-devel linuxdoc-tools psutils tex texlive-preprint3.cd /root/rpmbuild/SPECS[root@localh...
-
July 07, 2019
Centos7编译安装php的grpc和protobuf扩展
grpc php extension先按照官方文档编译grpchttps://github.com/grpc/grpc/blob/master/BUILDING.mdgit clone https://github.com/grpc/grpcgit submodule update --initmake install编译grpc php extensionyum -y install centos-release-scl.noarchyum -y install rh-php72 rh-...
-
June 27, 2019
Influxdb Grafana Telegraf的监控的安装配置
下载最新的安装包rpm -i grafana-6.2.5-1.x86_64.rpmrpm -i influxdb-1.7.6.x86_64.rpminfluxdb 的配置对应的服务service influxd start配置文件/etc/influxdb/influxdb.conf默认http服务 端口为8086数据和元数据的保存路径dir = "/var/lib/influxdb/data"influx> > use telegraf 选择要查看的数据库名 >...
-
June 18, 2019
C++和golang里面使用grpc和protobufs资料
下载编译好的protocol buffer编译器, 最新的protoc-3.8.0-linux-x86_64.ziphttps://github.com/protocolbuffers/protobuf/releases下载grpc的golang代码生成器protoc-gen-go,自动编译放到$GOPATH/bin目录go get -u github.com/golang/protobuf/protogo get -u github.com/golang/protobuf/protoc-...