关于僵尸进程

我们知道僵尸进程是kill不掉的;但是当我们了解了僵尸进程产生的原因时,办法就有了;
僵尸进程是因为父进程没有处理好子进程的死亡导致的;僵尸进程一定是某个进程的子进程,但一定不是init的子进程, 我们要清掉僵尸进程,只需kill掉其父进程即可,当父进程死去时,init将接管其子进程,其实是init将该僵尸进程处理掉的

经典搭讪

爱不过如此

《决心》  

人的一生有许多难以取舍,  

困惑不已的琐事所纠缠着,  

这时所需的就是断然的舍弃与明智的抉择,  

唯一会限制我们的,  

是我们自己的决心。  

—————————————————————-  

《理由》  

逃避不一定躲的过,  

面对不一定最难过,  

孤单不一定不快乐,  

得到不一定能长久,  

失去不一定不再拥有。  

你可能因为某个理由而伤心难过,  

但你却能找个理由让自己快乐。  

—————————————————————  

《失去》  

最凄凉最弄人的不是你知道,  

失去所爱的那一刻,  

而是你还在徘徊,  

犹未知道已经失去。  

—————————————————————-  

《距离》  

世界上最遥远的距离,  

不是生与死,  

而是我就站在你面前,  

你却不知道我爱你。  

世界上最遥远的距离,  

不是我就站在你面前,  

你却不知道我爱你,  

而是明明知道彼此相爱,  

却不能在一起。  

世界上最遥远的距离,  

不是明明知道彼此相爱,  

却不能在一起,  

而是明明无法抵挡这股想念,  

却还得故意装作丝毫没有把你放在心里。  

世界上最遥远的距离,  

不是明明无法抵挡这股想念,  

却还得故意装作丝毫没有把你放在心里,  

而是用自己冷默的心,  

对爱你的人掘了一条无法跨越的沟渠。  

—————————————————————-  

《炫耀》  

不爱了,就别向他炫耀,  

向他炫耀只是代表,  

你还是在意他的想法,  

你还是对他念念不忘,  

他看到这种窘态,  

只会深信你从来没有忘记过他。  

—————————————————————-  

《句号》  

当爱情要完结时,  

你不想画上句号也不行,  

当你怀疑是否主动画上句号时,  

那表示你根本就拾不得,  

也没办法画上这个句号。  

每一段情始终会有句号,  

句号要来时,  

你想挡都挡不住。  

—————————————————————-  

《习惯》  

爱情一旦成为了习惯,  

就会一辈子也摆脱不了的。  

—————————————————————-  

《放弃》  

放弃一个很爱你的人,  

并不痛苦。  

放弃一个你很爱的人,  

那才痛苦。  

爱上一个不爱你的人,  

那是更痛苦。  

—————————————————————-  

《寂寞》  

别因为寂寞而错爱,  

别因为错爱而寂寞一生。  

—————————————————————-  

《后悔》  

别等到错过后才去后悔,  

别等到失去后才想挽回。  

—————————————————————-

看完9个笑话 顿悟9个人生道理

1、建筑师  

一位夫人打电话给建筑师,说每当火车经过时,她的睡床就会摇动。  

“这简直是无稽之谈1建筑师回答说,“我来看看。”  

建筑师到达后,夫人建议他躺在床上,体会一下火车经过时的感觉。  

建筑师刚上床躺下,夫人的丈夫就回来了。他见此情形,便厉声喝问:“你躺在我妻子的床上干什么?”  

建筑师战战兢兢地回答:“我说是在等火车,你会相信吗?”  

【顿悟】  

有些话是真的,却听上去很假;有些话是假的,却令人无庸置疑。  
2、引诱  

英国绅士与法国女人同乘一个包厢,女人想引诱这个英国人,她脱衣躺下后就抱怨身上发冷。先生把自己的被子给了她,她还是不停地说冷。  

“我还能怎么帮助你呢?”先生沮丧地问道。  

“我小时候妈妈总是用自己的身体给我取暖。”  

“小姐,这我就爱莫能助了。我总不能跳下火车去找你的妈妈吧?”  

【顿悟】  

善解风情的男人是好男人,不解风情的男人更是好男人。  

3、调羹  

麦克走进餐馆,点了一份汤,服务员马上给他端了上来。  

服务员刚走开,麦克就嚷嚷起来:“对不起,这汤我没法喝。”  

服务员重新给他上了一个汤,他还是说:“对不起,这汤我没法喝。”  

服务员只好叫来经理。  

经理毕恭毕敬地朝麦克点点头,说:“先生,这道菜是本店最拿手的,深受顾客欢迎,难道您……”  

“我是说,调羹在哪里呢?”  

【顿悟】  

有错就改,当然是件好事。但我们常常却改掉正确的,留下错误的,结果是错上加错。  
4、穿错  

饭厅内,一个异常谦恭的人胆怯地碰了碰另一个顾客,那人正在穿一件大衣。  

“对不起,请问您是不是皮埃尔先生?”  

“不,我不是。”那人回答。  

“啊,”他舒了一口气,“那我没弄错,我就是他,您穿了他的大衣。”  

【顿悟】  

要做到理直气壮,并不是件容易的事情。理直的人,往往低声下气;而理歪的人,却是气壮如牛。  
5、回电  

一个苏格兰人去伦敦,想顺便探望一位老朋友,但却忘了他的住址,于是给家父发了一份电报:“您知道托马的住址吗?速告1  

当天,他就收到一份加急回电:“知道。”  

【顿悟】  

当我们终于找到最正确的答案时,却发现它是最无用的。  
6、伤心故事  

有三个人到纽约度假。他们在一座高层宾馆的第45层订了一个套房。  

一天晚上,大楼电梯出现故障,服务员安排他们在大厅过夜。  

他们商量后,决定徒步走回房间,并约定轮流说笑话、唱歌和讲故事,以减轻登楼的劳累。  

笑话讲了,歌也唱了,好不容易爬到第34层,大家都感觉精疲力竭。  

“好吧,彼德,你来讲个幽默故事吧。”  

彼德说:“故事不长,却令人伤心至极:我把房间的钥匙忘在大厅了。”  

【顿悟】  
我们痛苦,所以幽默;我们幽默,所以快乐。  
7、卖书  

一个很有名的作家要来书店参观。书店老板受宠若惊,连忙把所有的书撤下,全部换上作家的书。作家来到书店后,心里非常高兴,问道:“贵店只售本人的书吗?”  

“当然不是。”书店老板回答,“别的书销路很好,都卖完了。”  

【顿悟】  

“拍马屁”是个奇怪的词:你象是在奉承他,又象是在侮辱他。  
8、帮忙  

在邮局大厅内,一位老太太走到一个中年人跟前,客气地说:“先生,请帮我在明信片上写上地址好吗?”  

“当然可以。”中年人按老人的要求做了。  

1老太太又说:“再帮我写上一小段话,好吗?谢谢!”  

“好吧。”中年人照老太太的话写好后,微笑着问道:“还有什么要帮忙的吗?”  

“嗯,还有一件小事。”老太太看着明信片说,“帮我在下面再加一句:字迹潦草,敬请原谅。”  

【顿悟】  

你若不肯帮忙,人家会恨你一个星期;如果帮得不够完美,还不如……  
9.看本文章的人  
看完本文张的人刚想点击后退,就被警察捉住了!1警察:你丫看贴不回,关个10年再出来.  
【顿悟】  

你若不想回帖就不要点击文章,不然后果……我也不知道会。。。怎么样!

事情要这么说

  急事,慢慢的说;  
大事,清楚的说;  
小事,幽默的说;  
没把握的事,谨慎的说;  
没发生的事,不要胡说;  
做不到的事,别乱说;  
伤害人的事,不能说;  
讨厌的事,对事不对人的说;  
开心的事,看埸合说;  
伤心的事,不要见人就说;  
别人的事,小心的说;  
自己的事,听听自己的心怎么说;  
现在的事,做了再说;  
未来的事,未来再说。  

娶到这样的媳妇是你一生的荣耀[抄]

1:称呼你妈妈为“咱妈”
2:逛街时,不喜欢穿高跟鞋
3:在外边滴酒不沾,在家里千杯不醉
4:做饭时,唱着梁静茹的《我喜欢》
5:刷碗时,哼着王菲的《我愿意》
6:抱着纸巾盒看言情片
7:你睡觉时,偶尔会在一旁偷偷看着你傻笑
8:每天逼着你吃一个水果
9:总吵着要陪你熬夜看球,却从未坚持到过球员出现
10:散步时,会挽着你的左臂
11:至少每月和你吵一次架
12:敢在她父母面前跟你撒娇
13:有一个无话不谈的朋友,而且你认识
14:常对你说:“为了我,别冲动”
15:说谎时脸会红
16:你将来脸上的皱纹要是笑出来的,决不能是眉头紧锁的结果
17:为了逃避做家务,要和你猜拳,她出剪子,你出布
18:发型设计会征求你的意见
19:闲来无事,陪你下盘象棋,走三步,悔两步
20:有主见
21:和你朋友一起吃饭,偶尔她会偷着跑去结账
22:做错事情,总要和你争论一翻后才肯道歉
23:身上有股独特的香味,你闭起眼睛用鼻子能够找到她
24:更喜欢在家看电影
25:记忆力接近于零,半月之前的事,也很难记得(除了你对她的好)
26:爱打牌,但打得很臭
27:骑自行车偶尔也会让你做在后面
28:别人打错电话,她会非常客气地说:“不好意思,您打错了”
29:晚上喜欢把灯调到最暗
30:知道你妈妈的生日
31:周末本想睡个懒觉,她能用“吃”早餐的声音,把你叫醒
32:跟你父母通电话会说:“他对我可好了……”
33:笑话还没讲一半,常常先把自己笑翻
34:睡的比你早一点,醒的比你晚一点
35:不把“你猜,今天是什么日子?”这句话挂在嘴边
36:不留指甲
37:全市停电,才想起要和你享受一顿“烛光晚餐”
38:和你妈妈联起手来“欺负”你  
39:有时给别人发短信或打电话,会不小心输入你的号码
40:饭量用“克”来计算
41:会打领带
42:有句怎么也“戒” 不掉的口头禅,经常让你拿来取笑
43:知道电视上的广告大多言过其实
44:为你的唠唠叨叨找出“活动面部肌肉”的借口
45:把零食到处乱藏,怕你偷吃
46:用牙膏,从最底部开始挤
47:抽屉里存有我的针和线
48:能被一篇文章或一段文字打动
49:毫不介意在你面前挖鼻孔
50:买见标价99.99的衣服,付了100元后等着找零
51:有点小封建,但不迷信
52:允许你用泪水打湿她的肩头
53:更愿意让你用买花的钱买菜
54:相视无语的时候,能够用眼神跟你交流
55:吃西瓜,右手拿着一个勺,左手抱着半个瓜
56:掉眼泪,绝对可以用“楚楚动人”来形容
57:生气时摔的东西,除了毛绒玩具就是手纸(而且是摔在墙上或是地板上)
58:在家里,把你的衬衫当睡衣穿
59:定期帮你掏耳朵
60:你的眼睛随着身旁经过的美女微微转动,脚面马上就会感觉一阵剧痛
61:把你第二天要穿的衣服放在床边
62:你醉酒回家,我会泡好一杯清茶,并决定明天再教训你
63:吵架时绝对不说“分手”二字
64:每周一次家庭会议,她主持,你参加
65:懂得幽默,更会制造幽默
66:觉得说脏话,比说印第安语还要难上百倍
67:虽然可以用“骨瘦如柴”来形容但称体重时仍很怕抬起第二只脚
68:和你看恐怖片,你常常“汗毛倒竖”,跟影片内容没有关系,是被她吓的
69:天塌了,她会让你起顶!你倒了,她会扶着你
70:不明白为什么爱你,可就是爱你
71:她总可以找到理由爱你
72:你问她:“你能陪我一生一世吗?”她会说:“那谁敢保证啊!但我可以答应你,在中国男足拿到世界杯冠军之前,我是不会变的!” 
  

73:补充一句。看完不分享的你不会找到这样的好媳妇(好老公)……我嘴开光了,老灵了……哈哈

                                                                                                                

                                            

                

联合国的难题

联合国出了一道题目,请全世界各大洲的小朋友作出自己认为合适的答案。题目是:对于其它国家粮食短缺的问题,请你谈谈自己的看法。结果,没有一个大洲的小朋友能够准确回答这个问题。原因是什么呢?

非洲小朋友看完题目后,不知道什么叫“粮食”,所以答不出。

欧洲小朋友看完题目后,不知道什么叫“短缺”,所以答不出。

拉丁美洲的小朋友看完题目后,不知道什么叫“请”,所以答不出。

美国的小朋友看完题目后,不知道什么叫“其它国家”,所以答不出。

亚洲的小朋友呢?他们看完题目后,不知道什么叫“自己的看法”,所以也没答出。

PHP 之memcache使用

1.  如果你安装了PHP的memcache模块,则使用phpinfo()函数可以看到如下信息

    

        

            

            

        

        

            

            

        

        

            

            

        

    

memcache support enabled
Active persistent connections 10
Revision $Revision: 1.62 $

    

        

            

            

            

        

        

            

            

            

        

        

            

            

            

        

        

            

            

            

        

        

            

            

            

        

    

Directive Local Value Master Value
memcache.allow_failover 1 1
memcache.chunk_size 8192 8192
memcache.default_port 11211 11211
memcache.max_failover_attempts 20 20

其中:Active persistent connections 代表是的已建立的长连接的个数; 注意,该值是当前进程的,因为长连接在进程间是无法共享的。

2. php.ini 中配置解释

[Memcache]

; 一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,
; 它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。

; 是否在遇到错误时透明地向其他服务器进行故障转移。
memcache.allow_failover = On

; 接受和发送数据时最多尝试多少个服务器,只在打开memcache.allow_failover时有效。memcache.max_failover_attempts = 20

; 数据将按照此值设定的块大小进行转移。此值越小所需的额外网络传输越多。
; 如果发现无法解释的速度降低,可以尝试将此值增加到32768。
memcache.chunk_size = 8192

; 连接到memcached服务器时使用的默认TCP端口。
memcache.default_port = 11211

; 控制将key映射到server的策略。默认值"standard"表示使用先前版本的老hash策略。
; 设为"consistent"可以允许在连接池中添加/删除服务器时不必重新计算key与server之间的映射关系。
;memcache.hash_strategy = "standard"; 控制将key映射到server的散列函数。默认值"crc32"使用CRC32算法,而"fnv"则表示使用FNV-1a算法。
; FNV-1a比CRC32速度稍低,但是散列效果更好。
;memcache.hash_function = "crc32"

3. 通过下面一段简单的代码来测试上面配置的含义
<?php
ini_set("memcache.allow_failover",1);
ini_set("memcache.max_failover_attempts", 2);
$a = new Memcache();
$a->addServer("10.1.1.181",11251);
$a->addServer("10.1.1.181",11252);
$a->addServer("
10.1.1.181",11253);
$a->addServer("
10.1.1.181",11254);
$a->add("a","A",0);
?>
其中: 10.1.1.181 是一个不存在的IP,就算是存在,相应的端口也没有提供服务,目的就是要让连接失败。
当:
ini_set("memcache.allow_failover",0);
时, 我们可以通过tcpdump发现,只连接了一次,失败后就退出了

当:
ini_set("memcache.allow_failover",1);
ini_set("memcache.max_failover_attempts", 20);
时,我们可以通过tcpdump发现,四个端口都被尝试了一次,虽然设置了20次,但是不会循环回来尝试直到20次


ini_set("memcache.allow_failover",1);
ini_set("memcache.max_failover_attempts", 2);
时: 我们可以通过tcpdump发现,两个端口都被尝试失败后退出


4. PHP以前的memcache模块没有使用一致性hash,后来添加了该hash算法,但是默认没有使用,需要配置,如:
memcache.hash_strategy = consistent
或者使用ini_set("memcache.hash_strategy","consistent");
可以通过下面代码来验证一致性hash的好处:
<?php

//ini_set("memcache.hash_strategy","consistent");

$a = new Memcache();
$a->addServer("10.55.38.18",11271);
$a->addServer("10.55.38.18",11272);
$a->addServer("10.55.38.18",11273);
$a->addServer("10.55.38.18",11274);
$a->addServer("10.55.38.18",11275);
$a->addServer("10.55.38.18",11276);

for($i = 0; $i < 1000; $i++) {
$a->set("key".$i,$i,0);
}
$b = new Memcache();
$b->addServer("10.55.38.18",11271);
$b->addServer("10.55.38.18",11272);
$b->addServer("10.55.38.18",11273);
$b->addServer("10.55.38.18",11274);
$b->addServer("10.55.38.18",11275);
for(
$i = 0; $i < 1000; $i++) {
if(
$b->get("key".$i)) $m++;
}
echo
"all: $in";
echo
"hits: $mn";

for($i = 0; $i < 1000; $i++) {
$a->delete("key".$i);
}

?>
未使用一致性hash的结果为:

all: 1000
hits: 134
使用一致性hash的结果为:
all: 1000
hits: 838

6个节点中,损坏一个节点后,损失数据为: 16.2  约等于 1/6

5. PHP还有一个libmemcached的模块, 也实现了一致性的hash,效果和memcache中实现的基本一样(似乎不同,为测试,因为现在还没有这个需求); 而且还可以设置OPT_LIBKETAMA_COMPATIBLE, libmemcached下载: http://pecl.php.net/package/memcached
下面是关于libmemcached的一致性hash的测试, 从这里我们也发现,CONSISTENT不是一种hash算法,而是一种DISTRIBUTION

<?php

$a = new Memcached();
$a->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
$a->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
$a->addServer("10.55.38.18",11271);
$a->addServer("10.55.38.18",11272);
$a->addServer("10.55.38.18",11273);
$a->addServer("10.55.38.18",11274);
$a->addServer("10.55.38.18",11275);
$a->addServer("10.55.38.18",11276);

for($i = 0; $i < 1000; $i++) {
$a->set("key".$i,$i,0);
}
$b = new Memcached();
$b->setOption(Memcached::OPT_DISTRIBUTION,Memcached::DISTRIBUTION_CONSISTENT);
$b->setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);
$a->addServer("10.55.38.18",11271);
$b->addServer("10.55.38.18",11271);
$b->addServer("10.55.38.18",11272);
$b->addServer("10.55.38.18",11273);
$b->addServer("10.55.38.18",11274);
$b->addServer("10.55.38.18",11275);
for(
$i = 0; $i < 1000; $i++) {
if(
$b->get("key".$i)) $m++;
}
echo
"all: $in";
echo
"hits: $mn";

for($i = 0; $i < 1000; $i++) {
$a->delete("key".$i);
}

?>

6.   关于CONSISTENT 的使用也要慎用,这个算法是比较消耗cpu的,我们的一个业务在使用CONSISTENT 算法时,服务器每秒处理20个请求; 而去掉该算法后,每秒可以处理300多个请求,所以说这个算法对性能的影响还是蛮大的;

关于CONSISTENT的用法在网上说的比较少,我这些都是从源码里发现的,分享给大家。

7. 关于 OPT_COMPRESSION 的一点说明:
在libmemcached里面可以根据该选项来指定压缩或不压缩,但是如果原始内容小于100字节,就算指定压缩了,也不会压缩的(源码里面就是这么写的,文档中也这么说明了),因为太小了; 这似乎是一种明智的做法;

在memcache中也可以通过函数来设置setCompressThreshold( int threshold [, float min_savings] ); 但是如果不设置,则默认值为0; 即:不管原始内容是多少都要压缩的。好像就有些不够明智了。不过也可能正好能满足某些人的需求。