linux
woshiaotian
点滴的积累,可以铸就未来。
QQ:346873803
EMAIL:346873803@qq.com
展开
-
守护进程xinetd源码剖析(1)
关于xinetd的使用请参考http://www.linuxfocus.org/English/November2000/article175.shtmlhttp://hi.baidu.com/yoyx/blog/item/295ba366bda4e32aaa184c0c.html建议先使用一下xinetd,在剖析源码这样易于理解源码下载地址:http://www.xinetd原创 2012-08-17 15:52:45 · 8047 阅读 · 0 评论 -
requests 库的另类用法(stream)
重要 我的博客从今天起开始陆续迁移到 http://vearne.cc 敬请关注 本文链接 http://vearne.cc/archives/120起因: 同事让我帮他抓取一批URL,并获取对应URL的标签中的文字,忽略对应URL网站的封禁问题,这个任务并不是一个特别麻烦的事情。然后实际跑起来,却发现流量打的很高,超过10Mb/s。经过排查发现,是因为很多URL,实际...原创 2017-01-23 13:22:05 · 1900 阅读 · 0 评论 -
tornado 数据库初始化
起因: 在使用tornado构建的web服务中,我们常常需要对数据库进行访问,如何数据连接才是最为友好的方式,我们一般写法可能是这样的db.pyclass DB(object): def __init__(self): self.mysql_db = MySQLDatabase(host=mysql_conf['host'], user=mysql_conf['usernam原创 2016-05-18 11:59:41 · 2812 阅读 · 0 评论 -
业务日志收集方案
起因:我们线上的业务通常会部署到10几台或者几十台机器上,线上的日志如果用salt执行命令远程的grep已经是越来越不方便了,所以我们决定对日志进行统一收集,管理1. 选择方案我们业务日志不算特别的多,因此不想方案过于复杂,并且公司内部已经有ES和kafaka集群 因此可以选方案有 1) rsyslog + kafka + elasticsearch 2)fleuntd + kafka +原创 2017-11-09 13:29:55 · 4086 阅读 · 0 评论 -
优雅的终止docker容器
起因:本文受到参考资料1的启发 我们线上的服务有不少都是部署在docker中,部署涉及的机器多大几十台, 服务发布时,要求前一个版本的容器必须优雅的退出。 docker容器中的进程是一个任务消费者。不断得从任务队列中取任务,然后进行执行(执行时间较长)假定docker容器的name为test_v1 docker容器中的进程名为atm 也就是说不能简单的docker rm -vf test_原创 2017-10-10 15:52:34 · 4221 阅读 · 1 评论 -
redis 启动警告及处理
重要 我的博客从今天起开始陆续迁移到 http://vearne.cc 文章新地址 http://vearne.cc/archives/158 敬请关注 起因: 生产环境的一台redis机器Can't save in background: fork: Cannot allocate memory导致redis服务停止,但是当时机器的内存是64G,redis使用到的内存只...原创 2015-09-14 22:54:53 · 9520 阅读 · 0 评论 -
UTF8 encoding is longer than the max length 32766
重要 我的博客从今天起开始陆续迁移到 http://vearne.cc 敬请关注 本文地址: http://vearne.cc/archives/150原创 2016-04-07 18:19:36 · 4276 阅读 · 0 评论 -
Percona监控工具初探
重要 我的博客从今天起开始陆续迁移到 http://vearne.cc 本文新地址: http://vearne.cc/archives/124 敬请关注起因: 一直找不到合适的MySQL监控工具,正好听同事无意中说起,Percona在2016年4月发布了一个监控套件,可以同时对多个MySQL、MongoDB实例进行监控参考资料: 1. https://www.perc...原创 2016-11-23 14:03:06 · 7174 阅读 · 4 评论 -
peewee 对象clone函数
起因: 我需要得到peewee对象的clone对象,写个简单的小程序def clone(instance): obj = instance.__class__() # print a._meta.fields data = getattr(instance, "_data") for key in a._meta.fields: # print key原创 2016-10-20 14:23:21 · 496 阅读 · 0 评论 -
git 命令总结 (持续更新)
rt原创 2014-10-09 10:28:16 · 899 阅读 · 0 评论 -
docker 常用命令(持续更新)
删除imagedocker rmi myapp/base给image 打tagdocker tag 4424b58cae58 myapp/base原创 2016-08-26 15:33:38 · 653 阅读 · 0 评论 -
mysql 写性能测试
因为有个项目的场景是,大量写操作,非常少量的读操作因此这里测试下mysql数据的写性能建表CREATE TABLE `data` ( `id` int(11) NOT NULL AUTO_INCREMENT, `value` double DEFAULT NULL, `time` datetime DEFAULT NULL, `monitor_id` int(11)原创 2014-01-10 22:05:59 · 1046 阅读 · 0 评论 -
不使用别名的两种方法
不使用别名的两种方法alias cp='cp -i' /bin/cp1. 直接使用命令的绝对路径/bin/cp -r -u ./abc /tmp2. 使用unaliasunalias cpcp -r -u ./abc /tmp原创 2014-03-01 12:45:04 · 884 阅读 · 0 评论 -
我的第一个map/reduce 作业
使用cloudra 搭建了一个单机器的hadoop环境,编写了第原创 2014-07-04 18:13:15 · 774 阅读 · 0 评论 -
shell 分割文件
帮同事写的小程序140822,1406181801491716879,221.203.75.168,20140822000014140823,1408051715321587060,101.28.174.242,20140822000127140823,1408051715321587060,101.28.174.242,20140822000129140824,140805171532原创 2014-09-10 15:52:34 · 1864 阅读 · 0 评论 -
从hbase读取数据优化策略和实验对比结果
起因:工作需要,我需要每5分钟从hbase中,导出一部分数据,然后导入到ES中,但是在开始阶段编写的python脚本,我发现从hbase读取数据的速度较慢,耗费大量的时间,影响整个导数过程,恐怕无法在5分钟内完成导数工作在咨询了老人后,采取部门优化策略,并记录了实验结果。原创 2014-10-24 13:44:05 · 1847 阅读 · 1 评论 -
谈谈遇到的IncompleteRead
起因:最近通过HTTP的rest API 获取数据,数据格式为JSON字符串比较da原创 2014-10-20 11:34:17 · 10954 阅读 · 0 评论 -
celery expires 让celery任务具有时效性
起因:有的时候,我们希望任务具有时效性,比如定时每5分钟去抓取某个状态,由于celery队列中的任务可能很多,等到这个任务被执行时,已经超过了5分钟,那么这个任务的执行已经没有意义,因为下一次抓取已经执行了。原创 2014-10-22 15:15:27 · 3101 阅读 · 0 评论 -
python 也有析构函数, 我震惊了。
class Car(object): def __init__(self): print '---ok---' def __del__(self): print '----deconstrcut-------'c = Car()执行结果---ok-------deconstrcut-------这确实证明原创 2015-01-02 20:40:54 · 5869 阅读 · 0 评论 -
Linux上的free命令详解
文章讲的清楚明白,十分好,转载一下,原文地址http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:转载 2015-01-24 22:39:01 · 533 阅读 · 0 评论 -
从hadoop 中删除匹配指定字符串的任务
从hadoop 中删除匹配指定字符串的任务原创 2015-03-19 21:35:09 · 2203 阅读 · 0 评论 -
利用redis实现分布式环境下的限频
redis 本身有计数器,并且可以做原子的增1操作,特别适合用来做分布式环境下的限频# coding:utf-8import timeimport threadingfrom redis import StrictRedisclass Counter(object): def __init__(self, redis_url): self.redis_client =原创 2016-03-30 13:53:52 · 1602 阅读 · 0 评论 -
做了个工具类的小网站---tool.admaster.club
欢迎大家使用 http://tool.admaster.club/ 大家有什么工具类的需要,也可以给我评论,我会抽空往上加原创 2016-04-07 20:14:07 · 1182 阅读 · 0 评论 -
rtorrent初探--利用好你的云主机
重要 我的博客从今天起开始陆续迁移到 http://vearne.cc/archives/122 敬请关注起因:有了云主机以后,我常常想能够用它来做什么,当然可以用来挂网站,然后还能做什么,我想到可以把一些下载任务(BT)直接放到云主机来做,经过调研我选择了rtorrent。1. 简介rTorrent为一款纯文本环境BT客户端,具有占用内存小、频宽利用率高、支持 utf-...原创 2016-12-18 18:57:09 · 3926 阅读 · 0 评论