Ubuntu中完全卸载docker及docker.service: start request repeated too quickly
一、在Ubuntu中完全删除docker需如下几个步骤:1.删除软件,及其安装时自动安装的所有包sudoapt-getautoremovedockerdocker-cedocker-engine docker.io containerdrunc2.删除docker其他没有没有卸载dpkg-lgrepdockerdpkg-lgrep^rcawk'{print$2}'sudoxargsdpkg-P#删除无用的相关的配置文件3.卸载没有删除的docker相关插件(结合自己电脑的实际情况)sudoapt-getautoremovedocker-ce-*4.删除docker的相关配置&目录sudorm-rf/etc/systemd/system/docker.service.dsudorm-rf/var/lib/docker5.确定docker卸载完...[>>…]
NGINX自带auth_basic在http/https请求中的区别
查看nginx官网的文档,nginx有一个快速给请求添加账号密码验证的方法,使用ngx_http_auth_basic_module模块。可以放在http,server,location,limit_except上下文中,配置也很简单。如下: location/{ auth_basic"closedsite"; auth_basic_user_fileconf/htpasswd; } 在使用中发现,请求的页面分别是http和https的话,nginx的处理是有区别的。对于https请求,如果账号密码输入不正确,则会一直让用户输入,直至输入正确或者是用户点击两次取消放弃请求。而如果是http...[>>…]
uvicorn本地开发fastapi时启用多worker模式
uvicorn在本地启动开发的fastapi程序时,想试试看多worker模式,发现其在启动的时候有一行提示: $uvicornmain:app--host=10.118.11.26--port=8000--workers=3--reload WARNING:"workers"flagisignoredwhenreloadingisenabled. 即当开启了reload热加载模式时,workers配置将会被忽略。所以在本地开发时如果想体验多worker模式,就不要使用--reload。这是一个很小的点,但是如果没有注意到这项提示,并且启动后去查看进程发现怎么操作都没有按预期实现多进程时,会很崩溃,...[>>…]
关于tiangolo/uvicorn-gunicorn-docker镜像搭建的服务gunicorn.conf日志配置问题
目前看,使用tiangolo/uvicorn-gunicorn-docker镜像搭建的服务端,配置文件gunicorn.conf中的threads和worker_class配置根本不会生效,其它还有access_log_format等。见https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker这里面的gunicorn配置介绍,都没有这些选项。如何调整tiangolo/uvicorn-gunicorn-docker镜像搭建的服务端的日志输出,即gunicorn_access.log中的日志问题,如在开始添加时间值。 #gunicorn_access.log中以下三项配置均不生效 threads=1 worker_class='sync' a...[>>…]
Minio通过SDK连接时并不能设置连接超时时间
使用程序连接minio的时候,发现程序的接口中根本没有办法实现连接超时时间的设置。 client=Minio( endpoint="192.168.12.12:9000", access_key=saccess_key, secret_key=secret_key ) 整个Minio的调用接口除了这些参数外,还有session_token、secure、region、http_client、credentials,但都没有timeout相关的参数设置。因此通过SDK连接时根本无法实现设置连接超时时间的,导致默认的minio服务器在连接的时候如果服务器有异常,就会一直卡在连接minio上。&...[>>…]
Python Mysql程序报错:BrokenPipeError: [Errno 32] Broken pipe
检查python服务端的程序,发现存在错误日志,内容大致如下: python3.11/site-packages/pymysql/connections.py",line756, self._sock.sendall(data) BrokenPipeError:[Errno32]Brokenpipe Duringhandlingoftheaboveexception,anotherexceptionoccurred: 查看错误发生的地方,是在对mysql连接进行拼之后的关闭调用方法中报错。ifnotconnection.ping(False):connection.close() BrokenPipeError:[Errno32]Brokenpipe主要发生在父进程向子进程...[>>…]
tiangolo/uvicorn-gunicorn-fastapi中gunicorn_conf.py配置中的access_log_format无效
使用tiangolo/uvicorn-gunicorn-fastapi搭建的Python服务端程序框架,按照gunicorn的日志配置规则,其相关的常使用参数有4个,分别是accesslog,access_log_format,errorlog,loglevel。在配置文件gunicorn_conf.py中添加了如下的日志配置,但根本不生效。 #gunicorn访问日志配置 accesslog='/var/logs/gunicorn.access.log' access_log_format='%(h)s%(l)s%(u)s%(t)s' 我确定我添加的配置文件在gunicorn的启动命令中使用-c进行了加载,而且文件中配置的workers配...[>>…]
使用python开发的压测工具locust经验整理
压测工具有很多,以前也接触过不少,今天整理了一下新接触的locust工具。Locust是一个开源负载测试工具。可以定义用户行为,也可以仿真百万个用户。Locust是非常简单易用,分布式,用户负载测试工具。Locust是完全基于时间的,因此单个机器可以支持几千个并发用户。相比其他许多事件驱动的应用,Locust不使用回调,而是使用轻量级的处理方式gevent。Gevent是一个基于greenlet的Python的并发框架,以微线程greenlet为核心,使用了epoll事件监听机制以及诸多其他优化而变得高效。 &...[>>…]
Fastapi框架开发的python 后台API服务程序报错AttributeError: 'NoneType' object has no attribute 'read'
对一套pythonFastapi框架开发的python后台API服务进行压测,在SQL执行的python程序中出现了很多的报错。如下:AttributeError:'NoneType'objecthasnoattribute'read'AttributeError:'NoneType'objecthasnoattribute'settimeout'AttributeError:'NoneType'objecthasnoattribute'sendall'struct.error:unpack_fromrequiresabufferofatleast8 都是在site-packagespymysqlconnections.py文件中遇到的问题,经过几天的排查、思考最后发现是用户的请求进到python程序...[>>…]
Linux什么时候开始使用swap虚拟内存
某天看到服务器上的swap竟然有used数值,可一看服务器的内存free里还有不少呢,那Linux到底是什么时候开始使用swap虚拟内存?它是和一项系统配置相关的,/etc/sysctl.conf配置文件中的vm.swappiness这行。也可以直接使用命令cat/proc/sys/vm/swappiness查看。其默认值是60。即代表服务器的物理内存使用剩余60%时就开始使用swap,swappiness=0的时候表示最大限度使用物理内存,然后才启用swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面...[>>…]