Fork me on GitHub
Suzf  Blog

Linux 下 僵尸进程与D进程

 1 . 关于ZOMBIE进程

这些进程已经死亡,但没有释放系统资源,包括内存和一些一些系统表等, 如果这样的进程很多,会引发系统问题。用ps -el看出的进程状态如果是Z,就是僵尸进程。

Z 之所以杀不死,是因为它已经死了,否则怎么叫 Zombie(僵尸)呢?冤魂不散,自然是生前有结未解之故。在UNIX/Linux中,每个进程都有一个父进程,进程号叫PID(Process ID),相应地,父进程号就叫PPID(Parent PID)。当进程死亡时,它会自动关闭已打开的文件,舍弃已占用的内存、交换空间等等系统资源,然后向其父进程返回一个退出状态值,报告死讯。如果程序有 bug,就会在这最后一步出问题。儿子说我死了,老子却没听见,没有及时收棺入殓,儿子便成了僵尸。在UNIX/Linux中消灭僵尸的手段比较残忍,执 行 ...

ZooKeeper 概述

1. ZooKeeper概述

hadoop的一个子项目,是对Google分布式同步系统 chubby 的开源实现。
针对大型分布式系统的可靠协调系统。包括 配置维护,名字服务,分布式同步,组服务 等在内的功能。
目标: 封装复杂,易出错的关键服务,将简单的易用的接口和性能高效,稳定的协同工作系统提供给用户。

2. ZK的设计目标

  • 最终一致性
  • 可靠性
  • 实时性
  • 等待无关
  • 原子性  : 更新只能是成功或失败
  • 顺序性

3. ZK数据模型

ZK实际上是一个小型的分...

[译] How to create/restore a slave using GTID replication in MySQL 5.6

在 Mysql 5.6 中,里面有许多新的特性;我个人认为其中最有用的是在复制中支持 全局事务ID(Global Transaction ID)。
这篇文章不是用来介绍什么是GTID,关于它的工作原理这里有很多文章介绍:
http://dev.mysql.com/doc/refman/5.6/en/replication-gtids-concepts.html

这里值得一提的是,如果你想GTID支持log_slave_updates,需要启用从服务器和考虑到性能的影响。

还有,这篇文章更趋向于实用,我们将要看到如何使用 GTID 创建/恢复 新的slaves 从 master上。

如何创建一个新的 slave 节点
我们不需要知道的现在二进...

Python 爬取中文网页乱码的通用解决办法

由于网页编码不统一,我们会遇到各式各样的网页编码格式。

那么问题来了,由于编码格式不统一,爬取的中文信息往往是不尽任意的, 那么如何处理它呢?

ENV: Python 2.7.x

如何取得网页的编码,用chardet库最方便(https://pypi.python.org/pypi/chardet/)。

#!/usr/bin/env python
# encoding:utf-8

import chardet
import urllib2

line = "http://suz...
                
            

Debian Fedora常用命令管理包

对大家推荐很好使用的Debian Fedora命令系统,像让大家对Debian Fedora命令系统有所了解,然后对Debian Fedora命令统全面讲解介绍,Debian Fedora 的包管理命令。

=== Debian Fedora 中dpkg命令 ===
dpkg -i --install* dpkg --install w3m_0.5.2-2+b1_i386.deb 
dpkg -r --remove* dpkg --remove w3m
dpkg -P --purge* dpkg --purge w3m
dpkg -l --list* 列出当前系统里安装好的包名
dpkg -L --listfiles* 列出已经安装好的包的...

How-to rechange debian system root password

Debian Linux 系统忘记密码怎么办?
看到很多人老在论坛里面问这个问题,有的人给的答案也不多。特拿出来,随便当笔记用。

对于一些版本的OS(如RedHat)来说,编辑grub,在后面加上“single”即可进入单用户模式。
但是对于debian来说,这种方式是无效的,因为debian进入单用户模式也需要你输入root用户的密码。

1.在grub选项菜单’Debian GNU/Linux,…(recovery mode)’,按e进入编辑模式

2.编辑kernel那行最后面的 ro single 改成 rw single init=/bin/bash,按 b / F10 执行重启

3.进入后执行下...

Linux commands curl and wget

1、curl(文件传输工具)

常用参数如下:

-c,--cookie-jar:将cookie写入到文件

-b,--cookie:从文件中读取cookie

-C,--continue-at:断点续传

-d,--data:http post方式传送数据

-D,--dump-header:把header信息写入到文件

-F,--from:模拟http表达提交数据

-s,--slient:减少输出信息

-o,--output:将信息输出到文件

-O,--remote-name:按照服务器上的文件名,存在本地

--l,--head:仅返回头部信息

<...

LVM 基本原理与实践

目录:
一: LVM原理详解
二: LVM创建
三: LVM的增大和放缩
四: LVM快照
五: 相关扩展阅读
六: LVM 优缺点

 

一:LVM原理详解
1.LVM是什么?
LVM是linux系统上的一个逻辑卷管理器有两个版本lvm1和lvm2现在默认是lvmm2,lvm2兼容lvm1但是对于lvm1的快照是不兼容的,所以如果你使用lvm1创建了快照,请在升级为lvm2的时候将快照卷卸载
Lvm2使用的是设备映射器(device mapper)2.6版本的内核有其...

pip-faq: Error -5 while decompressing data: incomplete or truncated stream

在我执行 `pip install flask-bootstrap` 出现了一个这样的错误
-- error: Error -5 while decompressing data: incomplete or truncated stream

安装/卸载其他包是正常的。唯独管理flask-bootstrap 出现了这样的错误。

版本信息:
#pip --version
pip 7.1.2 from /usr/local/lib/python2.7/site-packages/pip-7.1.2-py2.7.egg (python 2.7)
#python --version
Python 2.7.3

完整的报错信息是: