• Linux内核参数管理

    Linux 内核有很多可以定制化的参数 —— 内核参数 ( kernel parameters ), 斟酌设置内核参数对 系统调优 意义重大。 内核参数 涵盖内核的方方面面,包括 网络 ( net )、 文件系统 ( fs )等等。

    本文以 fs.file-max 参数为例,介绍设置内核参数的几种方式。

    procfs

    Linux 内核通过 procfs 伪文件系统暴露 内核参数 的访问接口, 通过 procfs 接口,用户可 设置 或者 查看 指定内核参数。 内核参数位于 /proc/sys 目录下,以 fs.file-max 参数为例,路径为 /proc/sys/fs/file-max

    查看参数只需读取对应文件内容:

    1
    2
    
    $ cat /proc/sys/fs/file-max
    94524
    
    阅读全文
  • QUIC 协议

    QUIC ,即 快速UDP网络连接 ( Quick UDP Internet Connections ), 是由 Google 提出的实验性网络传输协议 ,位于 OSI 模型传输层。 QUIC 旨在解决 TCP 协议的缺陷,并最终替代 TCP 协议, 以减少数据传输,降低连接建立延迟时间,加快网页传输速度。

    QUIC 主要特点有:

    • 多流设计;
    • 低等待延迟;
    • 加密性能更优;
    • 前向纠错;
    • 应用程序实现;
    • 连接保持;
    阅读全文
  • 用 Python 生成 HTML 表格

    邮件报表 之类的开发任务中,需要生成 HTML 表格。

    使用 Python 生成 HTML 表格基本没啥难度, for 循环遍历一遍数据并输出标签即可。 如果需要实现合并单元格,或者按需调整表格样式,就比较麻烦了。

    这时,可以试试本文的主角 —— html-table 包,借助它可生成各种样式的 HTML 表格。 接下来,以一个简单的例子演示 html-table 的常用用法:

    表格效果图

    阅读全文
  • 更优雅地造测试数据

    开发系统时,经常需要一些伪数据用于测试。

    举个例子,设计一个学生管理系统,测试注册功能,总需要一些用户信息吧。我猜大部分人都会填:用户 aaaa ,密码 1111 ,手机号码 1111 ……感觉略无追求~

    那么有没有办法造一个看上是真的数据呢?自己造很累,有没有不需要大脑的方法的?

    还真有,这就是本文要介绍的一个Python模块——Faker

    阅读全文
  • 使用GDB调试Python程序

    最近用在开发一个 agent 程序,需要支持 LinuxFreeBSDWindows 等操作系统。 复杂的机器环境,导致一系列诡异问题,尽管代码发布前在不少测试机上验证过。

    Python 程序吐 coredump 文件怎么办? 很多人会想到用 gdb 加载 coredump 文件,然后查看 信号堆栈 信息,据此分析原因。 堆栈信息在调试中非常有用,可别忘了,待调试的是 Python 代码,而 gdb 提供的是 C 堆栈信息! 难道要撸 Python 源码,然后分析各种核心数据结构吗? 有什么方式可以查看到 Python 堆栈信息吗?

    还遇到过另一个问题,一个 Python 进程突然间陷入死循环,所有其他线程都调度不到。 遇到这种情况,首先可能需要知道死循环到底在干什么。 如何获悉呢?可能用 strace 跟一下系统调用可以看出一点端倪。 但是一个堆栈信息更为具体更有说服力,就算是只有 C 堆栈信息有时也是足以说明问题的。

    gdb 就可以解决以上难题(其实远不止),接下来,我们一起看看具体要怎么操作吧~

    阅读全文