高并发下设置Linux打开文件数
在linux中,一切皆文件,所以连接数本身也会表现为文件打开数。默认情况下,linux单进程打开文件数的限制是1024 , 非常低,在密集io型服务里很容易超过。 代码如下: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546# vi /etc/sysctl.conf ,末尾添加fs.file-max = 655350000sssfs.nr_open = 655350000# 执行命令生效sysctl -p# 查看 max-file:cat /proc/sys/fs/file-max# 查看当前系统总打开文件数cat /proc/sys/fs/file-nr# 输出: 9344 0 592026,# 分别为:1.已经分配的文件句柄数,2.已经分配但没有使用的文件句柄数,3.最大文件句柄数。# 修改系统对单个进程打开的文件数限制ulimit -n 655350000echo "* soft nofile 655350000" >>...
如何解决robo3t无法翻页的错误
问题: robo3t mongo工具 windows 版本连接mongo,翻页提示如下报错: 1The ntoreturn find command parameter is not supported when FCV >= 5.1 解决方案: 1db.adminCommand({setFeatureCompatibilityVersion: "5.0",})
None、nan、null、""
在python语言当中经常会遇到None、nan、null、””还有与之相关的0与False。这几个之间有着明显的区别同时又在特定的时候能够表达一个含义。 None在Python中,None是一个特殊的对象,表示空或无值。它用于表示一个变量或返回值没有被赋予任何值。 None在Python中被用作默认参数值、函数返回值或变量初始化时的占位符。当一个函数没有显式地返回任何值时,默认返回None。例如: 12345678910111213def do_something(): # 执行一些操作,但没有返回值result = do_something()print(result) # 输出 None在条件语句中,None被视为False。例如:pythonvalue = Noneif value: print("value is not None") # 不会执行else: print("value is None") # 输出 value is...
生命游戏
有一句话叫做:”大道至简”.意味真正的道理用很简单的方式就能表达。越是复杂的理论其核心就越简单,这样的说法在算法当中尤其如此,因为很多人评价计算机就是0与1的变化,也只有加法,其余所有东西都是通过组合变化出来的。而生命游戏亦是如此! 诞生生命游戏(Game of Life)是由英国数学家约翰·康威于1970年发明的一种细胞自动机。康威在1968年开始研究细胞自动机,他的目标是设计一个简单的模型来模拟生命的演化。 康威最初并没有打算将这个模型命名为”生命游戏”,他只是希望通过这个模型来研究生物学中的一些基本概念,比如细胞的繁殖和死亡。 生命游戏的诞生可以追溯到康威在1969年参加了一个关于细胞自动机的会议。会议上,康威向与会者展示了他设计的这个模型,并用一个计算机程序演示了它的运行过程。会议上的人们对这个模型非常感兴趣,纷纷提出了各种问题和建议。 在接下来的几年里,康威不断改进和完善这个模型,引入了更多的规则和变化。最终,他将这个模型命名为”生命游戏”,并于1970年在科学杂志《科学美国人》(Scientific...
python当中的range_map
在python当中的字典能让使用者快速找到对应的数据值,但是如果想要实现这样的一个字典: 1234_dict = { [1,5):"a", [5,10):"b"} 能让操作者在仅知道一个数值就可以索引到范围对应的那个value,如_dict[3]输出"a"该怎么做呢? 解决办法可以借助python库bisect对字典进行重写解决该问题,bisect相关信息就不过多阐述了,简单来说就是通过排序算法,定位指定值在范围内的位置,再通过索引找到位置。代码如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354from bisect import bisect_left, bisect_rightfrom collections.abc import MutableMappingclass...
文件md5校验
从网络上下载大文件时,官网一般都会提供一个MD5、SHA1或SHA256值,这是用来校验文件完整性的。因为从网络上下载大文件具有不确定性,可能会受很多因素影响,比如网络抖动导致文件下载不完成,文件被恶意篡改等,这些问题都会导致最终下载的文件无法正常使用。 针对小文件(<500MB)直接以二进读模式(rb)加载进来,然后计算。 123456789101112import hashlibdef encrypt(fpath: str, algorithm: str) -> str: with open(fpath, 'rb') as f: return hashlib.new(algorithm, f.read()).hexdigest()if __name__ == '__main__': for algorithm in ('md5', 'sha1', 'sha256'): hexdigest =...
获取exe文件图标
lnk文件图标需要找到对应的exe文件所在真实路径才能获取图标,不能够直接获取。dll与没有指定图标的exe文件获取图标会报错。 1234567891011121314151617181920212223242526272829303132333435363738import win32guiimport win32uifrom PIL import Imageimport win32com.clientdef pra_lnk(file_path:str): """解析lnk文件""" shell = win32com.client.Dispatch("WScript.Shell") shortcut = shell.CreateShortCut(file_path) return shortcut.Targetpathdef get_ico_from_exe(file_path:str): ...
docker更换国内源
由于Docker的官方默认源在海外,导致了国内服务器使用Docker默认源拉取镜像速度不理想,甚至直接失败等问题,造成了不小的困扰。 解决方式很简单,可以使用国内提供的docker镜像源加速: 123456789# 网易163https://hub-mirror.c.163.com# 中国科学技术大学https://docker.mirrors.ustc.edu.cn# 阿里云https://<你的ID>.mirror.aliyuncs.com# 腾讯云内网https://mirror.ccs.tencentyun.com 下面以网易163源为实例 一、适用于基于 Ubuntu 操作系统的实例:1、执行以下命令,打开 /etc/default/docker 配置文件 1vim /etc/default/docker 2、按 i 切换至编辑模式,添加以下内容,并保存 1DOCKER_OPTS="--registry-mirror=https://hub-mirror.c.163.com" 3、执行以下命令,重启 Docker...
python代码加密
之前工作中需要使用到对python代码进行加密,因为许多核心代码设计到重要信息,不能暴露给客户。但是python作为一种脚本语言,既要保证运行部署方便又要考虑到代码破译的安全性问题。 编译加密编译加密就是常见的将python代码编译成为以后缀.pyc的文件,虽然不影响使用与部署,但是可以被反编译,直接使用uncompyle库进行反编译即可得到结果 代码混淆代码混淆在我之前的记录当中提起过,网站 优点: 简单 不可逆 不影响逻辑 缺点: 对于项目来说不友好 混淆不可控 逻辑依然可读 打包成exe文件python可以使用pyinstaller将文件打包成exe文件,但是对于项目部署来说几乎全是缺点: 内部路径找不到 资源文件不好打包 部署使用麻烦 难以控制 生成使用 Cython它的原理:将 .py/.pyx 编译为 .c文件,再将 .c文件编译为 .so(Unix) 或 .pyd(Windows) 1pip install...













