全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python中日志logging模块的性能及多进程详解

前言

Java 中最通用的日志模块莫过于 Log4j 了,在 python 中,也自带了 logging 模块,该模块的用法其实和 Log4j 类似。日志是记录操作的一种好方式。但是日志,基本都是基于文件的,也就是要写到磁盘上的。这时候,磁盘将会成为一个性能瓶颈。对于普通的服务器硬盘(机械磁盘,非固态硬盘),Python日志的性能瓶颈是多少呢?今天我们就来测一下。下面话不多说,来一起看看详细的介绍:

测试代码如下:

#! /usr/bin/env python 
#coding=utf-8 
 
# ============================ 
# Describe : 给平台提供的日志 
# D&P Author By:  常成功 
# Create Date:  2016/08/01 
# Modify Date:  2016/08/01 
# ============================ 
 
import time 
import os 
import logging 
 
 
print "Start test ...." 
s_tm = time.time() 
test_time = 10.0 # 测试时间10秒 
e_tm = s_tm + 10 
j = 0 
 
pid = str(os.getpid()) 
while 1: 
 now_time = time.time() 
 j += 1 
 if now_time > e_tm: 
  break 
 # 生成文件夹 
 lujing = "d:\\test_log" 
 if not os.path.exists(lujing): 
  os.mkdir(lujing) 
 
 fm2 = '%Y%m%d' 
 YMD = time.strftime(fm2, time.localtime(now_time)) 
 
 filename = 'recharge_' + YMD + '.log' 
 log_file = os.path.join(lujing, filename) 
 t = "\t" 
 log_msg = str(j) +t+ str(now_time) +t+ pid 
 
 the_logger = logging.getLogger('recharge_log') 
 f_handler = logging.FileHandler(log_file) 
 the_logger.addHandler(f_handler) 
 the_logger.setLevel(logging.INFO) 
 # To pass exception information, use the keyword argument exc_info with a true value 
 the_logger.info(log_msg, exc_info=False) 
 the_logger.removeHandler(f_handler) 
 
rps = j/test_time 
print rps, "rows per second" 

结果为:

Start test ....

2973.0 rows per second


Python的logging性能:

7200转的机械磁盘,测了几次,每秒的能写入日志的行数(每行就是一条日志),数量基本在 2800-3000 之间。此时,磁盘IO基本已经跑满。(在3.3Ghz的CPU上,CPU占用大约40%)。

Python的logging多进程:

python 的 logging模块,是线程安全的。但对于多进程的程序来说,怎么去写日志文件呢?我的解决办法是,每个进程的PID,写一个单独的日志文件。再用算法把所有进程的日志合并起来,生成新的日志。

提示:由于磁盘IO已经到达瓶颈,所以多进程并不能提高日志性能。高性能日志,需要用缓存,或者分布式日志。

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# python  # logging多进程  # logging模块  # python中logging模块  # Python使用logging实现多进程安全的日志模块  # python logging多进程多线程输出到同一个日志文件的实战案例  # python 实现多进程日志轮转ConcurrentLogHandler  # python多进程下实现日志记录按时间分割  # python logging日志模块以及多进程日志详解  # 详解Python中logging日志模块在多进程环境下的使用  # python多进程日志以及分布式日志的实现方式  # 都是  # 将会  # 几次  # 成为一个  # 这篇文章  # 带了  # 并不能  # 就来  # 再用  # 谢谢大家  # 多说  # 高性能  # 解决办法  # 需要用  # 莫过于  # 要写  # 行数  # 也自  # 这时候  # 有疑问 


相关文章: 如何零基础开发自助建站系统?完整教程解析  建站之星上传入口如何快速找到?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何在建站宝盒中设置产品搜索功能?  如何在阿里云服务器自主搭建网站?  如何自定义建站之星网站的导航菜单样式?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  山东云建站价格为何差异显著?  建站DNS解析失败?如何正确配置域名服务器?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  广州建站公司哪家好?十大优质服务商推荐  在线制作视频网站免费,都有哪些好的动漫网站?  如何彻底删除建站之星生成的Banner?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何通过PHP快速构建高效问答网站功能?  建站之星代理如何优化在线客服效率?  如何快速搭建FTP站点实现文件共享?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何选择高效可靠的多用户建站源码资源?  制作表格网站有哪些,线上表格怎么弄?  建站之星安装失败:服务器环境不兼容?  建站之星备案是否影响网站上线时间?  高端企业智能建站程序:SEO优化与响应式模板定制开发  购物网站制作公司有哪些,哪个购物网站比较好?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  建站之星安装提示数据库无法连接如何解决?  重庆市网站制作公司,重庆招聘网站哪个好?  宝塔面板创建网站无法访问?如何快速排查修复?  韩国服务器如何优化跨境访问实现高效连接?  如何在Windows服务器上快速搭建网站?  如何通过VPS建站无需域名直接访问?  如何续费美橙建站之星域名及服务?  网站制作需要会哪些技术,建立一个网站要花费多少?  济南企业网站制作公司,济南社保单位网上缴费步骤?  简单实现Android文件上传  深圳网站制作案例,网页的相关名词有哪些?  如何获取PHP WAP自助建站系统源码?  公司网站设计制作厂家,怎么创建自己的一个网站?  建站之星导航如何优化提升用户体验?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  javascript基本数据类型及类型检测常用方法小结  javascript中的try catch异常捕获机制用法分析  IOS倒计时设置UIButton标题title的抖动问题  建站之星如何保障用户数据免受黑客入侵?  定制建站流程解析:需求评估与SEO优化功能开发指南  打鱼网站制作软件,波克捕鱼官方号怎么注册?  建站之星如何实现PC+手机+微信网站五合一建站?  h5在线制作网站电脑版下载,h5网页制作软件?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  建站org新手必看:2024最新搭建流程与模板选择技巧 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。