zhuizhuhaomeng Blog

「记录下来,一切都会更容易理解」

Why got the TCP reset pakcet

我们在排查网络问题的时候有时候会发现由于收到 TCP reset 报文导致连接中断或者连接不上的问题。 那么到底有哪些情况会导致收到 TCP reset 报文呢?下面列举一些常见的例子,如果有更多的情况,欢迎补充。 [TOC] 目的端口没有打开 目的端口没有打开这种情况是比较常见的。 比如: 机器重启了,但是服务没有设置开启启动。 程序重启了,端口被关闭又打开的瞬间接收到的 ...

使用 Python 脚本删除重复的图片

由于各种原因导致电脑上备份的照片有大量的重复,因此希望能够删除这些重复的照片。 这些重复的照片是由于云同步,换手机同步等原因导致的重复。 所以,这些重复的照片的文件内容的二进制数据是完全一样的,而不是视觉上的一样。 因此可以通过简单的计算文件的 MD5 来判断文件是否重复。 下面简短的代码实现删除重复的照片。 这里只是简单的删除重复,而没有办法选择保留哪些路径下的照片。 比如,我们原来有...

proc of the linux

获取进程创建时间 如果我们想要获取进程的创建时间,那么可以通过下面的命令 stat /proc/pid 1 2 3 4 5 6 7 8 9 $ stat /proc/1 File: /proc/1 Size: 0 Blocks: 0 IO Block: 1024 directory Device: 5h/5d Inode: 13428 ...

How to install debuginfo

为什么需要调试信息 对于大部分 Linux 用户来说,安装调试信息包并没有任何意义,因为他们只是使用软件而不会去调试软件故障。 作为开发者来说,在遇到崩溃等软件故障时,安装调试信息包是一个必不可少的步骤。 但是不同的发行版本的操作系统的安装方法又不一样,确实让人头疼。 Fedora 序列 如果不知道某一个软件对应的软件包的名字,可以通过 rpm -qf $(which $exe) 这...

How to compile opencc

序列文章 怎么编译 OpenResty 怎么编译 OpenCC 更新 cmake 如果机器上的 cmake 比较老,需要更新 cmake,那么最快的方式就是使用已经编译好的包。 1 2 wget https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3-linux-x86_64.sh bash cm...

How to compile nginx dynamic module

社区有人反馈说把 lua-nginx-module 模块编译成动态模块后,在加载模块的时候失败了。报错信息是: unknown directive "lua_ssl_trusted_certificate" in /etc/nginx/conf.d/crowdsec_nginx.conf。 具体的问题可以参考 lua-nginx-module/issues/2180。 为什么会造成编译的模...

LuaJIT 字节码学习

两个立即数相加 lua 代码 1 2 3 4 1 local c 2 3 c = 1 + 2 4 print(c) luajit 字节码 1 2 3 4 5 6 7 8 9 $ luajit -bL t.lua:w -- BYTECODE -- t.lua:0-5 KGC 0 "print" 0001 [1] KPRI 0 0 ; s...

KVM manage

Shut down all vms Every day I need to shut down all the virtual machines, which is a lot of work. The script below is used to shut down all the running machines. 1 2 3 4 5 6 7 8 9 10 11 12 13 14...

使用 jemalloc 检测内存问题

Jemalloc 虽然也可以用来检测内存重复释放,访问后还使用的问题,不够如果 AddressSanitizer 和 Valgrind 可以使用的情况下,还是应该优先使用他们两个。 Jemalloc 检测内存问题 首先我们要确保编译的 jemalloc 是带有 –enable-debug 选项的。 其次,运行的时候应该加上 MALLOC_CONF=tcache:false 选项...

给 nginx 开启 TCP Fast Open 的支持

什么是 TCP Fast Open TCP 握手需要一个完整的 RTT(往返时间)。RTT 是指一个数据包从发送方到达接收方再返回所需的时间。 对于 “短暂的 “和 “时间敏感的 “流量来说,一个 RTT 是一个很大的时间,例如网络流量;在浏览器上浏览网页,如访问一个网站。如果传播延迟非常高(例如,地面站和卫星之间的链接)或移动网络非常慢,则性能会进一步下降。一个 RTT 不会(显著)降低...