本方案存在不可解决的缺点,已被笔者放弃,请移步最新解决方案
NAS的文件系统一直是我比较纠结的一个点。NAS的系统基本上是基于Linux(Unix),文件系统不是ntfs,数据迁移不方便,数据恢复工具也没那么全。
WSL就完美解决了这个问题,用Linux提供服务,数据最终还是落在ntfs上,而且重要的是everything也能用上。
openmediavault(OMV)是一个基于Debian的NAS系统,而且能在原生Debian系统上自行安装,正好能够实现我们的功能。
人类一思考,上帝就发笑。
Windows Subsystem for Linux(WSL)从Version 1 (WSL1)
升级到Version 2 (WSL2)
之后,底层实现方式发生了改变。
由于使用Hyper-V来实现WSL2,使得WSL更像虚拟机,一个能访问本地硬盘的虚拟机。
这带来一些便利,能够把它当做独立服务器来使用,可玩性就增强很多。当然,这也导致WSL上的端口不能从外部访问到,总之有利有弊。
虽然能够配置端口转发,曲线救国突破这个缺陷,但是有些服务的端口是约定俗成的(比如samba),更换端口号(原端口号被windows占用)之后其他设备可能识别不到服务。
经过一番思考后,觉得给WSL2开启桥接模式,直接连接物理网络才是相对最好的方案。
平时例行午睡时间是下午1:20-1:50,今天也一样,只是闹钟响的时候感觉没睡够。
于是想再眯一会儿,然后我睡朦了,做了一个让我哭笑不得的梦。
下面描述下这个梦
在梦中,我被一阵持续的噪音惊醒,声音类似老式空调压缩机的声音,嘈杂而持久,整个房间都有一点震动的感觉。我在房间里仔细搜寻噪音的源头,好让自己再次入眠。
找来找去,发现我的冲牙器在不停震动,声音也很是类似,还以为忘记关开关了。于是准备把开关关了,一阵手忙脚乱开关还是没能关掉(梦中这种细致的操作不好实现?)。于是我把冲牙器的插头拔下了,但是它好像没有停下来的意思,还在不停震动着,而且冲牙器的位置也不是现实中的位置,我好似也坦然接受了这无须电源的震动(这好像不是重点),但是又无法确定噪音的源头就是它。
然后,富有逻辑的操作来了,我找了个桶把冲牙器盖起来,发现噪音并没有减弱,于是我排除了它的嫌疑。
接着就发现应该是空调的压缩机在响,我就认定是它了,然后空调的指示灯变清晰了,原来是我误开了空调,我笃定开得是制热,只有制热需要这么大的功率,空气也燥热起来,一切是那么符合逻辑。
心满意足找到答案之后,我醒了,发现噪音来源是外面修路的水泵。
最近发生了一个服务故障,在一个同事对日志服务做了改动后,服务的耗时就变大了很多,数据大量积压。
通过观察监控报表,我们发现从他的改动上线后,服务器的CPU使用率大幅增加,基本处于满载状态。
粗略审查代码并没有发现问题,我们只能紧急回滚了服务,日志消费也恢复到正常状态了。
但是根本问题还没有找到,所以我请出了line_profiler来分析程序的具体耗时情况。
line_profiler是个代码耗时分析器,可以逐行分析代码的耗时情况。
在学习redis源码时,发现BITCOUNT
命令实现用到了variable-precision SWAR 算法。
BITCOUNT
命令要解决的问题:统计一个位数组中非0二进制位的数量。在数学上被称为“计算汉明重量(Hamming Weight)”
目前已知效率最好的通用算法为variable-precision SWAR 算法。
该算法通过一系列位移和位运算操作,可以在常数时间内计算多个字节的汉明重量,并且不需要使用任何额外的内存。