2013-04-25 刘太华
2.6.16后的内核, 对于查看进程内存使用分布, 更方便了. 在/proc/{pid} 路径下有一个smaps文件, 记录了进程内存使用情况, 在老的内核系统上, 这个文件是maps或memap , 而且老的内核下maps或memap文件记录的数据真不是人读的. 继续阅读 »
2013-03-14 刘太华
备份: 在postgres.conf配置里指定: archive_command = 'cp "%p" /data/postgresql/arch/"%f"' 设定: wal_level=archive 手工备份操作方式: 继续阅读 »
2013-02-18 刘太华
FlameGraph的例图,解释如下: 图中每一个方块代表栈里的一个函数。 Y轴代表调用深度,最上面的是当前正在CPU上执行的函数,下面的都是其祖先。每个函数都是由它下方的函数调用的。 X轴不是按照时间先后排列的,它只代表样本数目。方块越宽,代表该函数出现的次数越多。 在有多个并发线程同时被采样,样本总数可能超过采样所用的时间。 继续阅读 »
2013-03-11 刘太华
http协议的缓存头策略 以下头均指返回给浏览器的响应头! last-modify 告诉浏览器此文件的最后修改时间,浏览器在下次访问同样文件时会带上这个修改时间,服务器在收到请求后比较,如果无变化则直接返回304告诉浏览器内容无变化,使用自己本地缓存即可,通常web服务器都会自动为静态请求返回这个头! 继续阅读 »
2013-02-19 刘太华
pptp服务器: pptp下发下去的ip网段: 10.168.0.0/24 iptables配置: (注意打开ip_forward转发): -A FORWARD -s 10.168.0.0/24 -j ACCEPT -A POSTROUTING -s 10.168.0.0/24 -j MASQUERADE 继续阅读 »
2013-04-18 刘太华
源码里的结构: tornado ├── auth.py ├── autoreload.py ├── ca-certificates.crt ├── curl_httpclient.py ├── database.py ├── escape.py ├── gen.py ├── httpclient.py ├── httpserver.py ├── httputil.py ├── init.py ├── ioloop.py ├── iostream.py ├── locale.py ├── netutil.py ├── options.py ├── platform │ ├── auto.py │ ├── common.py 继续阅读 »
2013-03-07 刘太华
1,通常用到 perf sched record 收集系统相关的调度数据, 然后使用pert ached latency --sort max 来打印出收集到的信息,perf sched latency --sort max 展现的数据中各个column的含义如下: 继续阅读 »
2013-03-07 刘太华
zmq push--pull 方式 在ZMQ中是淡化服务端和客户端的概念的: 相对的服务端: 创建一个SUBer订阅者bind一个端口, 用来接收数据 创建一个zmq.PUSH 创建一个zmq poller轮询对象, 将sub注册到poller, 并赋予zmq.POLLIN意味轮询进来的msg 创建sock=poller.poll()开始轮询 当有msg发送到suber订阅者的监听端口后, sock.recv()方法将会收到msg, 最后使用之前创建的pusher, 使用pusher.send(msg)将消息推送到连接到的puller, 如果无puller, 此msg将被丢弃 继续阅读 »
2013-04-26 刘太华
hubot 机器人, 居然今天才去了解了下它, 用nodejs运行, coffee javascrpit写的. 记录下安装方式 如果是redhat系列的linux, 使用yum 安装即可, centos6后的nodejs版本已经很新了. 实在不行就搞源码安装. 继续阅读 »
2013-04-27 刘太华
为hubot机器人脚本增加python扩展 昨天顺利把hubot跑起来了, 能回答了. 也通过nodejs的exec命令执行shell的方式, 将消息以参数的形式传给process.py处理, 以形成用py写脚本的形式. 不过上面方式有缺陷: 1, nodejs不是真正的调用py, 同时py执行的返回或直接print或写stdout(print在某种程度上就是stdout), 然后nodejs什么都不用干, 就直接相当于把stdout使用msg.send回复给gtalk了. 2, 整体结构不优美, nojs跟py还得靠exec执行shell的形式, 这种调用方式挺丑陋. 继续阅读 »