一个让我如痴如醉的python内存泄露问题

python 5,876 views
聊一个有意思的话题, 一个让我如痴如醉的内存泄露问题 (memory leak). . . 熟悉我的人,知道我是从devops再到纯开发的岗位。虽然我写过很多的所谓运维平台,什么自动装机,什么集群管理,什么DBA管理,什么监控系统等等… 虽然前后端都是我自己搞...
阅读全文 3

一个让我如痴如醉的python内存泄露问题

05-12 5,876 views

聊一个有意思的话题, 一个让我如痴如醉的内存泄露问题 (memory leak). . . 熟悉我的人,知道我是从devops再到纯开发的岗位。虽然我写过很多的...
阅读全文 3

源码分析multiprocessing的Value Array共享内存原理

python 4,721 views
这次我们通过分析python的multiprocessing的源码,来看看Value Array怎么通过mmap ctypes实现的多进程之间的共享内存.      当第一次使用python多进程模块(multiprocessing)的Value Array做数据共享,就觉得一定是基于mmap实现的。 当...
阅读全文 0

源码分析multiprocessing的Value Array共享内存原理

05-10 4,721 views

这次我们通过分析python的multiprocessing的源码,来看看Value Array怎么通过mmap ctypes实现的多进程之间的共享内存.      当...
阅读全文 0

理解socket connect和accept的实现细节

python 4,244 views
不知道大家是否有跟我相似的感觉,随着工作经验的增长,越发的觉得自己学的太不扎实…    该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。http://xiaorui.cc/?p=3256 最几个月一直在忙活socket开发方面的事,...
阅读全文 0

理解socket connect和accept的实现细节

05-04 4,244 views

不知道大家是否有跟我相似的感觉,随着工作经验的增长,越发的觉得自己学的太不扎实…    该文章写的有些乱,欢迎来喷 ! 另外文章后续不...
阅读全文 0

源码分析之gevent monkey.patch_all实现原理

python 5,808 views
我发现最近总是跟一些python的标准库及第三方的库干上了。 平时没怎么关注,但只要一遇到问题,就想刨根问底分析源代码 ! 这样不仅解决当前问题,还能学习下功能模块是怎么实现的,另外还能学习别人的coder黑技巧. 该文章写的有些乱,欢迎来喷 ! 另外文章后续...
阅读全文 0

源码分析之gevent monkey.patch_all实现原理

04-27 5,808 views

我发现最近总是跟一些python的标准库及第三方的库干上了。 平时没怎么关注,但只要一遇到问题,就想刨根问底分析源代码 ! 这样不仅解决当前问题,还能学习下...
阅读全文 0

源码分析python MySQLdb的实现细节-上

python 3,871 views
前两天因为一个服务内存泄漏的问题,让我想看看python mysql是如何实现的. 以前没注意到MySQLdb的代码实现,通过这两天的学习,还是很有收获的。 以前总是以为MySQLdb的_mysql.c很是复杂,事实上虽然也复杂了点,但基本都看的懂,_mysql.c里不含有mysql的底层协议...
阅读全文 0

源码分析python MySQLdb的实现细节-上

04-24 3,871 views

前两天因为一个服务内存泄漏的问题,让我想看看python mysql是如何实现的. 以前没注意到MySQLdb的代码实现,通过这两天的学习,还是很有收获的。 以前总是...
阅读全文 0

打造mvc框架之sendfile使静态文件高效传输

python,web 3,599 views
    以前我写过一篇关于nginx sendfile的文章,讲的是sendfile零拷贝理论方面,这次主要是讲实现的细节。 http://xiaorui.cc/?p=1673     sendfile的流程示意图 :             ...
阅读全文 2

打造mvc框架之sendfile使静态文件高效传输

04-22 3,599 views

    以前我写过一篇关于nginx sendfile的文章,讲的是sendfile零拷贝理论方面,这次主要是讲实现的细节。 http://xiaorui.cc/?p=1673 ...
阅读全文 2

打造mvc框架之实现高效的路由规则匹配

python,web 5,034 views
    在python的主流框架里面对于route路由规则的处理是相当的直接,都是使用python re正则表达式来处理 。想想这也是理所当然的,如果想要构建丰富的url匹配,那必须要用正则表达式的。 另外route路由器本身不会重新排序,他的顺序是你程序构建rout...
阅读全文 0

打造mvc框架之实现高效的路由规则匹配

04-17 5,034 views

    在python的主流框架里面对于route路由规则的处理是相当的直接,都是使用python re正则表达式来处理 。想想这也是理所当然的,如果想要构建丰...
阅读全文 0

打造mvc框架之wsgi协议的优缺点及接口实现

python,web 5,137 views
前言:     又是WSGI ,这是我曾经比较熟悉的协议,以前针对实现了wsgi server的unicorn和uwsgi都写过源码解析的文章。  其实他们的实现也很简单,就是给flask、django这样的application传递environ,start_response 。 该文章写...
阅读全文 0

打造mvc框架之wsgi协议的优缺点及接口实现

04-16 5,137 views

前言:     又是WSGI ,这是我曾经比较熟悉的协议,以前针对实现了wsgi server的unicorn和uwsgi都写过源码解析的文章。  其实他...
阅读全文 0

打造mvc框架之socket获取http粘包问题

python,web 5,078 views
该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。http://xiaorui.cc/?p=3198 只要做过服务开发的人都会遇到粘包的问题,跟着标题也知道我在忙啥,对的,我在用python写一个简单粗暴的web服务器,中间就遇到了一个粘包的问题,...
阅读全文 0

打造mvc框架之socket获取http粘包问题

04-15 5,078 views

该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。http://xiaorui.cc/?p=3198 只要做过服务开发的人都会遇到粘包的问...
阅读全文 0

打造mvc框架之解析socket底层的http协议

python,web 4,594 views
打造mvc框架是个连载的博文,虽然说是要造轮子,但其实更多的是学习web框架的具体实现原理。  其实我发现很多web框架没有直接解析http协议的方法,像bottle,flask都是记住于wsgi server来实现的。 关于wsgi协议,我会专门再讲解一次。 正事因为别的web框...
阅读全文 0

打造mvc框架之解析socket底层的http协议

04-14 4,594 views

打造mvc框架是个连载的博文,虽然说是要造轮子,但其实更多的是学习web框架的具体实现原理。  其实我发现很多web框架没有直接解析http协议的方法,像...
阅读全文 0

打造mvc框架之python template模板实现原理

python,web 5,180 views
造轮子        喜欢造轮子的我,那肯定也是实现过一套mvc的web框架的人,不止一套。 先前是用gevent做wsgi,jinja2做的模板,peewee做orm,我做了一个控制器来衔接各个组件,  如果想使用gevent的协程处理每个request_handler...
阅读全文 4

打造mvc框架之python template模板实现原理

04-12 5,180 views

造轮子        喜欢造轮子的我,那肯定也是实现过一套mvc的web框架的人,不止一套。 先前是用gevent做wsgi,jinja2做的模...
阅读全文 4

python多线程下保持单例模式的实例唯一

python 5,192 views
先描述在python中的一个场景,我有个自定义的类,实例了一些transfer信息传递及线程池的作用,然后还需要被用来共享一些服务配置。 这时候稍不注意会出现一批新的类实例被创建。 这样造成了数据不能共享,浪费资源。 我知道大家也不想这样,但往往不注意就这样了。 ...
阅读全文 1

python多线程下保持单例模式的实例唯一

04-10 5,192 views

先描述在python中的一个场景,我有个自定义的类,实例了一些transfer信息传递及线程池的作用,然后还需要被用来共享一些服务配置。 这时候稍不注意会出现一...
阅读全文 1

源码分析python sleep函数实现原理

python 4,906 views
最近在重读《UNIX环境高级编程》,在想linux下sleep()函数是如何实现的,他的原理是啥? 跟python time.sleep()是否一样. 首先看看linux sleep()的函数是怎么个实现方法,感觉实现起来有些下小麻烦呀.  该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更...
阅读全文 2

源码分析python sleep函数实现原理

04-09 4,906 views

最近在重读《UNIX环境高级编程》,在想linux下sleep()函数是如何实现的,他的原理是啥? 跟python time.sleep()是否一样. 首先看看linux sleep()的函数是怎么...
阅读全文 2

大数据ElasticSearch遇到ignore_above问题

elasticsearch,python 6,598 views
    以前有一个叫朱伟大神的人跟我聊过,凡是所谓的坑,都是因为你没看他的源码或者文档导致的。 这话听起来有道理,但问题ElasticSearch的各种文档很是乱,刚接触他的人只看es的dsl语句就会郁闷住的,不用说更深层的文档。  ElasticSearch的更新算...
阅读全文 0

大数据ElasticSearch遇到ignore_above问题

04-07 6,598 views

    以前有一个叫朱伟大神的人跟我聊过,凡是所谓的坑,都是因为你没看他的源码或者文档导致的。 这话听起来有道理,但问题ElasticSearch的各种文...
阅读全文 0

公司内部的python分享《美妙的多进程管理》

python,技术分享,文艺 6,872 views
    圈子里有朋友问我在python下如何实现类gunicorn多进程管理.  Master Worker工作模型非常适合多任务环境,可以规范后端服务,动态的改变worker数,不怕内核的oom等.     在新公司还没怎么分享过python,因为公司的python高手...
阅读全文 8

公司内部的python分享《美妙的多进程管理》

04-06 6,872 views

    圈子里有朋友问我在python下如何实现类gunicorn多进程管理.  Master Worker工作模型非常适合多任务环境,可以规范后端服务,动态的改...
阅读全文 8

关于python捕获内核发出的sigkill信号问题

python,运维 5,390 views
The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored. signal的sigkill信号,也就是kill -9 pid是无法在程序内部捕获的,那怎么办?你反抗不了,一般关于sigkill的日志会在/var/log/messages里,如果非deamon程序在终端也是有日志体现的。...
阅读全文 0

关于python捕获内核发出的sigkill信号问题

04-04 5,390 views

The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored. signal的sigkill信号,也就是kill -9 pid是无法在程序内部捕获的,那怎么办...
阅读全文 0

聊聊logging的RotatingFileHandler切割日志

python 4,657 views
因为一个异常没有及时处理,日志疯长到50G… 刚才已经说了,这是异常日志,所以关于日志的内容也都是没用的。 日志这么大怎么处理? 可以使用logrotate来管理,logrotate是个基于crontab实现的日志管理,可以切割删除日志,设置压缩及备份个数。  程序本...
阅读全文 0

聊聊logging的RotatingFileHandler切割日志

04-01 4,657 views

因为一个异常没有及时处理,日志疯长到50G… 刚才已经说了,这是异常日志,所以关于日志的内容也都是没用的。 日志这么大怎么处理? 可以使用logrotate...
阅读全文 0

源码分析elasticsearch python的scan及scroll实现

elasticsearch,python 6,450 views
上篇文章已经讲过elasticsearch scan scroll的用途, 他们是用来解决获取大数据返回时的性能问题.  有兴趣的朋友可以回顾下 scan,scroll的作用一篇. http://xiaorui.cc/?p=3072 这次聊下elasticsearch python客户端的实现。 该文章写的...
阅读全文 1

源码分析elasticsearch python的scan及scroll实现

03-29 6,450 views

上篇文章已经讲过elasticsearch scan scroll的用途, 他们是用来解决获取大数据返回时的性能问题.  有兴趣的朋友可以回顾下 scan,scroll的作用一篇....
阅读全文 1

使用elasticsearch的scroll和scan解决深度分页问题

elasticsearch,python 8,550 views
使用ElasticSearch的scroll和scan解决大数据集合问题 我的连接,http://xiaorui.cc/?p=3072 内容概要, 主要是解决在ElasticSearch中大数据集合的查询需求,可以使用scroll scan可以较轻松的遍历elasticsearch的某个index. 深度分页那些事 我们知...
阅读全文 0

使用elasticsearch的scroll和scan解决深度分页问题

03-28 8,550 views

使用ElasticSearch的scroll和scan解决大数据集合问题 我的连接,http://xiaorui.cc/?p=3072 内容概要, 主要是解决在ElasticSearch中大数据集合的...
阅读全文 0

解决mac osx下pip安装ipython权限的问题

python 9,236 views
这两天又把家里的mac的系统给重装了,重装的原因是我乐意…    其实理由很简单,本人想写个mac osx系统的使用文档,当然是初级的那种…  这尼玛还没意气风发就狼狈不堪了… 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断...
阅读全文 13

解决mac osx下pip安装ipython权限的问题

03-27 9,236 views

这两天又把家里的mac的系统给重装了,重装的原因是我乐意…    其实理由很简单,本人想写个mac osx系统的使用文档,当然是初级的那种…...
阅读全文 13

详解python调用redis lua内嵌脚本的高级用法

python 7,068 views
Lua 脚本功能是 Reids 2.6 版本开始提供的高级功能, 我们可以通过redis内嵌的 Lua 环境的进行搞复杂的需求。 使用内置的lua脚本环境可以解决Redis长久以来不能高效地处理 CAS (check-and-set)命令的缺点, 并且可以通过组合使用多个命令, 轻松实现以前很难实现...
阅读全文 5

详解python调用redis lua内嵌脚本的高级用法

7,068 views

Lua 脚本功能是 Reids 2.6 版本开始提供的高级功能, 我们可以通过redis内嵌的 Lua 环境的进行搞复杂的需求。 使用内置的lua脚本环境可以解决Redis长久以来...
阅读全文 5