比如这样的日志,需要统计后一条记录和前一条记录之间的时间差值 [2024-10-11 10:42:24 023047] DEBUG 478832,readermgn.cpp:17:run,tid:0x7f80697fa700,479378,reader mgn running [2024-10-11 10:42:30 329273] DEBUG 478832,readermgn.cpp:17:ru […]
作者: mowblog
python下的数据库连接池dbutils
最近在测试业务的时候,出现长时间并发线程跑sql的时候建立链接耗时的问题,于是搜罗了一下python下是否有链接池的功能,于是乎找到dbutils这个模块,官方路径是在这里 https://webwareforpython.github.io/DBUtils/ 基础使用相对不麻烦,使用pymysql作为连接器进行演示验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#coding: utf-8 import pymysql from dbutils.pooled_db import PooledDB import threading from concurrent.futures import ThreadPoolExecutor pool = PooledDB( creator=pymysql, maxconnections=16, # 可同时创建的最大连接数,如果并发很快这里可能会出现超过最大链接数的报错 mincached=4, maxcached=12, maxshared=128, blocking=False, maxusage=None, setsession=["set autocommit=0"], #用于设置session的前导语句 ping=1, reset=True, # mysql登陆参数 host="192.30.2.19", port=3306, user="test1234", passwd="test1234", database="mysql", charset="utf8mb4", cursorclass=pymysql.cursors.DictCursor, # 这里设置返回cursor类型, DictCursor会返回字典类型,带有字段名 ) def run_test(num): tid = threading.currentThread().ident conn = pool.connection() cursor = conn.cursor() cursor.execute("begin") cursor.execute(f"insert into db1.t1(id,tid) values({num}, '{tid}')") cursor.execute(f"select {num} as num, '{tid}' as tid from dual") print(cursor.fetchall()) cursor.execute("commit") conn.close() for i in range(30): # 每次最多创建16个线程 threadpool = ThreadPoolExecutor(16) for j in range(16): threadpool.submit(run_test, *(i*16 + j,)) threadpool.shutdown(wait=True) |
  […]
docker部署elasticsearch和kibana
1、下载官网镜像 因为要在外网隔离环境部署,所以需要将image下载后再搬迁过去 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.14.2 docker pull docker.elastic.co/kibana/kibana:8.14.2 docker image ls docker save da0e65225d10 -o […]
jconsole远程链接
虚虚实实 仅记录一下使用方法,往往复复,也不会经常使用到了 加上下面的启动参数运行jar包 /opt/TencentKona-21.0.3.b1/bin/java -jar -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9527 -Dcom.sun.management.jmxremote.rmi.port=9 […]
umount -l卸载无响应的nfs挂载
某些时候由于nfs服务卡住或者网络问题导致umount -f也无法卸载时,可以临时使用umount -l模式完成卸载 -l, --lazy Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it […]
crc/md5/sha1碰撞数据
为了校验功能,从网上搜罗到的一组碰撞数据 crc32: b5a7b602ab754d7ab30fb42c4fb28d82 d19f2e9e82d14b96be4fa12b8a27ee9f md5: 0x0e306561559aa787d00bc6f70bbdfe3404cf03659e704f8534c00ffb659c4c8740cc942feb2da115a3f4155cbb860749738 […]
psrecord监控单个进程的cpu和内容实用情况
某些时候,我们需求有针对性的健康单个进程的cpu和内存使用情况,并且能自动绘制出折线图,这是用psrecord应该算是一个比较好的选择。 只要系统能访问pip,部署也相对比较简单 python3 -m pip install --upgrade pip python3 -m pip install matplotlib python3 -m pip install psrecord 使用方法 ps […]
Mac从x86迁移到M3平台后gcc报错“xcrun: error: unable to load libxcrun”
背景: 用迁移助理从x86迁移到M3之后,gcc返回错误: gcc -v xcrun: error: unable to load libxcrun (dlopen(/Library/Developer/CommandLineTools/usr/lib/libxcrun.dylib, 0x0005): tried: '/Library/Developer/CommandLineTools/usr/ […]