2022 年度总结

前言又一年过去了,总结一下今年的经历,迎接新的一年。 学业已经回想不起来今年🈶️学到什么了,只能当作是荒废学业了吧。 有好好的整理过一些课程相关的内容,发表于NUIT-OPEN。 对于形式主义,一直都是循规蹈矩地敷衍,也没有打破规则的勇气;从而把不少时间都浪费在了上面。 先生,你也不想让学费打了水漂吧。 技术技术方面,并没有突破性的进展,大部分时间都投入工作了。而工作的内容基本都处于业务层面;大...

使用 Rosetta 建立 Ubuntu x86 开发环境

前言尽管换了 M1 设备也有一年多了,但平时仍然依赖于 x86 平台进行开发,为此不得不单独部署一套 x86 的开发环境在 intel PC 上。 随着 macOS 更新到了 Ventura (13.0.1),以及 UTM 4.0 的更新,现已可以在 Linux 环境下启用 Rosetta 对 x86(含amd64) 应用进行加速。 使用 Rosetta 加速后,在构建项目的速度上甚至几年前的 i...

MySQL 最大连接数问题

前言有些问题,在开发过程中不会遇到;但当要在生产环境中进行部署的时候便会暴露出来。 sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1040, 'Too many connections') 为什么会引发这个问题?因为生产环境的 CPU 核心数太多了。 业务进程的数量一般为 CPU 数量的倍数,而数...

CentOS 网卡聚合

前言最近在部署项目时遇到了一小问题,需要在两台服务器之间建立一条高速链路进行数据传输,但是这两台机器并没有万兆网卡。 不过,这两台服务器各有4个千兆网卡,如果对其进行聚合,或许可以在不添置硬件的情况下得到翻倍的传输速率? 抱着这样的想法,展开了本次调研。 桥接(Bridge)桥接可以简单理解成,使多张网卡处于同一VLAN;在网段相同的情况下,接入同一VLAN的设备可以相互通信。 操作流程 建立文件...

麒麟系统瘦身

前言近期在完成项目部署的过程中,遇到了一台特殊设备。该设备在安装Ubuntu Server系统后,无法驱动网卡;经过一番分析,发现是Linux内核没有集成相关驱动。 不过由于麒麟系统是由Ubuntu衍生的,用来部署项目也不是不可,但要用桌面系统来部署项目,就得精简一下了。 关闭应用安装验证sed -i 's/allow-kylinsign/#allow-kylinsign/g' /...

2021 年度总结

前言又一年过去了,总结一下今年的经历,迎接新的一年。 学业刚从SZPT作为大三的学生毕业,到NUIT又成了大三 (大一) 新生。 回想起当初备考的时候做的准备,以及发现了进2B有手就行的事实,感叹现实真的有点滑稽。 早知道就直接裸考算了。笑 在新学校,也许是不太适应生活节奏吧,总感觉压力山大。几乎每天都在应付作业,尽管到了期末,也没能消停下来。 (即使在12.31当天仍然堆积着好几份未完成的实验报...

Gunicorn+GeventWorker环境下fork进程意外结束的问题

前言在使用Gunicorn+GeventWorker托管Flask应用,使用os.fork时出现了以下问题。 Parent changed, shutting down : <Worker xxxx> 本文摘录自本人毕业设计论文。 问题分析通过os.fork创建进程,实际上是将当前进程的内存数据复制了一份给子进程,当子进程发现其不是由Gunicorn主进程所创建时,Gunicor...

通过chroot实现Linux子系统

前言在一些精简的Linux发行版里,很多时候会有无法运行需要某些依赖的程序的情况。 然而,会搭载这种精简系统的设备,一般无法重新安装系统;例如:路由器、手机等其他嵌入式设备。 而且受限于系统内核(缺少cgroup的一些高级特性等),也无法安装docker。 同时,在不同的Linux发行版下,使用的C语言标准库也不尽相同;如:glibc、musl等。 即使CPU支持程序所使用的指令集,使用glibc...

postmarketOS食用指南

前言postmarketOS是一个运行在手机上的Linux系统,基于Alpine Linux。 在整理杂物时,翻出了一台旧手机(骁龙650+3G+32G);这样的硬件资源,比云学生机好太多了。 卖了又不划算,闲置着怪可惜的,便有了接下来尝试充分利用资源的计划。 往手机安装Linux,打造一台下载服务器。 构建环境安装postmarketOS需要Linux环境,以及python/pip...