write down,forget
adidas eqt support ultra primeknit vintage white coming soon adidas eqt support ultra boost primeknit adidas eqt support ultra pk vintage white available now adidas eqt support ultra primeknit vintage white sz adidas eqt support ultra boost primeknit adidas eqt adv support primeknit adidas eqt support ultra boost turbo red white adidas eqt support ultra boost turbo red white adidas eqt support ultra boost turbo red adidas eqt support ultra whiteturbo adidas eqt support ultra boost off white more images adidas eqt support ultra boost white tactile green adidas eqt support ultra boost beige adidas eqt support ultra boost beige adidas eqt support refined camo drop adidas eqt support refined camo drop adidas eqt support refined running whitecamo adidas eqt support 93 primeknit og colorway ba7506 adidas eqt running support 93 adidas eqt support 93

nginx升级1.0及自定义server-header

<Category: Linux>

今天发布了nginx1.0,把我的vps的也升级下,顺便修改下header信息,移除了版本号。

移除header信息里面nginx的版本号

nginx1.0升级步骤

修改header里面server的名称,让你的servername更加个性:

重新编译安装

效果如下,是不是很酷?:

本文来自: nginx升级1.0及自定义server-header

使用dropbear代替sshd

<Category: Linux>

本文来自: 使用dropbear代替sshd

Linux kernel 的 sendfile 是如何提高性能的

<Category: Linux>

转:http://www.vpsee.com/2009/07/linux-sendfile-improve-performance/

现在流行的 web 服务器里面都提供 sendfile 选项用来提高服务器性能,那到底 sendfile 是什么,怎么影响性能的呢?sendfile 实际上是 Linux 2.0+ 以后的推出的一个系统调用,web 服务器可以通过调整自身的配置来决定是否利用 sendfile 这个系统调用。先来看一下不用 sendfile 的传统网络传输过程:

read(file, tmp_buf, len);
write(socket, tmp_buf, len);

硬盘 >> kernel buffer >> user buffer >> kernel socket buffer >> 协议栈

一般来说一个网络应用是通过读硬盘数据,然后写数据到 socket 来完成网络传输的。上面2行用代码解释了这一点,不过上面2行简单的代码掩盖了底层的很多操作。来看看底层是怎么执行上面2行代码的:

1、系统调用 read() 产生一个上下文切换:从 user mode 切换到 kernel mode,然后 DMA 执行拷贝,把文件数据从硬盘读到一个 kernel buffer 里。
2、数据从 kernel buffer 拷贝到 user buffer,然后系统调用 read() 返回,这时又产生一个上下文切换:从kernel mode 切换到 user mode。
3、系统调用 write() 产生一个上下文切换:从 user mode 切换到 kernel mode,然后把步骤2读到 user buffer 的数据拷贝到 kernel buffer(数据第2次拷贝到 kernel buffer),不过这次是个不同的 kernel buffer,这个 buffer 和 socket 相关联。
4、系统调用 write() 返回,产生一个上下文切换:从 kernel mode 切换到 user mode(第4次切换了),然后 DMA 从 kernel buffer 拷贝数据到协议栈(第4次拷贝了)。

上面4个步骤有4次上下文切换,有4次拷贝,我们发现如果能减少切换次数和拷贝次数将会有效提升性能。在kernel 2.0+ 版本中,系统调用 sendfile() 就是用来简化上面步骤提升性能的。sendfile() 不但能减少切换次数而且还能减少拷贝次数。

再来看一下用 sendfile() 来进行网络传输的过程:

sendfile(socket, file, len);

硬盘 >> kernel buffer (快速拷贝到kernel socket buffer) >> 协议栈

1、系统调用 sendfile() 通过 DMA 把硬盘数据拷贝到 kernel buffer,然后数据被 kernel 直接拷贝到另外一个与 socket 相关的 kernel buffer。这里没有 user mode 和 kernel mode 之间的切换,在 kernel 中直接完成了从一个 buffer 到另一个 buffer 的拷贝。
2、DMA 把数据从 kernel buffer 直接拷贝给协议栈,没有切换,也不需要数据从 user mode 拷贝到 kernel mode,因为数据就在 kernel 里。

步骤减少了,切换减少了,拷贝减少了,自然性能就提升了。这就是为什么说在 Nginx 配置文件里打开 sendfile on 选项能提高 web server性能的原因。

本文来自: Linux kernel 的 sendfile 是如何提高性能的

mysql-bin.000001-x

<Category: Linux, mysql>

发达了,mysql-bin占了我9g空间啊,大汗一把:
20K mysql-bin.000001
700K mysql-bin.000002
4.0K mysql-bin.000003
4.0K mysql-bin.000004
4.0K mysql-bin.000005
4.0K mysql-bin.000006
4.0K mysql-bin.000007
4.0K mysql-bin.000008
4.0K mysql-bin.000009
4.0K mysql-bin.000010
11M mysql-bin.000011
63M mysql-bin.000012
368K mysql-bin.000013
256K mysql-bin.000014
9.5M mysql-bin.000015
1.8M mysql-bin.000016
11M mysql-bin.000017
508K mysql-bin.000018
45M mysql-bin.000019
146M mysql-bin.000020
86M mysql-bin.000021
2.2M mysql-bin.000022
2.6M mysql-bin.000023
124K mysql-bin.000024
8.7M mysql-bin.000025
4.9M mysql-bin.000026
428K mysql-bin.000027
372K mysql-bin.000028
123M mysql-bin.000029
17M mysql-bin.000030
4.0K mysql-bin.000031
700K mysql-bin.000032
454M mysql-bin.000033
14M mysql-bin.000034
841M mysql-bin.000035
388M mysql-bin.000036
26M mysql-bin.000037
728K mysql-bin.000038
216M mysql-bin.000039
228M mysql-bin.000040
294M mysql-bin.000041
14M mysql-bin.000042
155M mysql-bin.000043
13M mysql-bin.000044
884K mysql-bin.000045
13M mysql-bin.000046
434M mysql-bin.000047
206M mysql-bin.000048
171M mysql-bin.000049
528K mysql-bin.000050
61M mysql-bin.000051
330M mysql-bin.000052
199M mysql-bin.000053
64M mysql-bin.000054
436K mysql-bin.000055
17M mysql-bin.000056
340K mysql-bin.000057
116M mysql-bin.000058
18M mysql-bin.000059
23M mysql-bin.000060
188M mysql-bin.000061
40K mysql-bin.000062
277M mysql-bin.000063
4.0K mysql-bin.000064
35M mysql-bin.000065
258M mysql-bin.000066
147M mysql-bin.000067
79M mysql-bin.000068
4.0K mysql-bin.000069
4.0K mysql-bin.000070
434M mysql-bin.000071
4.0K mysql-bin.000072
99M mysql-bin.000073
52M mysql-bin.000074
620K mysql-bin.000075
428M mysql-bin.000076
788K mysql-bin.000077
4.0K mysql-bin.000078
4.0K mysql-bin.000079
126M mysql-bin.000080
137M mysql-bin.000081
428K mysql-bin.000082
31M mysql-bin.000083
4.0K mysql-bin.index
阅读这篇文章的其余部分

本文来自: mysql-bin.000001-x

python,遍历目录生成html文件列表

<Category: Python>

使用方法:walk.py>index.html

另外一种,使用pyh来生成(比较慢).
阅读这篇文章的其余部分

本文来自: python,遍历目录生成html文件列表

php-cgi内存优化

<Category: Linux>

php-cgi内存优化

优化前:

修改/usr/local/php/etc下的php-fpm.conf和php.ini文件,去掉不需要的扩展

优化后:

只要一个php-cgi进程占用的内存超过 %1 就把它kill掉

放crontab里面,每5分钟执行一次

htop挺不错,可以很方便对cpu占用率、内存占用率等进行排序,推荐一下

本文来自: php-cgi内存优化

urllib2的delete操作

<Category: Python>

http://apps.hi.baidu.com/share/detail/23498106

本文来自: urllib2的delete操作

python string padding left

<Category: Python, 小道消息>

make string(ex. ‘3’, ’32’) left padded with zeroes (ex. ‘003’, ‘032’)

HOWTO:

本文来自: python string padding left

wix tips

<Category: .NET>

设置property的属性是否直接被更改: Indirect=”yes”

,INSTALLDIR为你的目录Id
访问安装的目标文件夹,session[“INSTALLDIR”]

自动更新:produc、package的Id不能为“*”,然后product的upgradeCode和upgradeCode必须要一致

customaction要加 Execute=”immediate”

如果需要获取属性值的时候,确保至少在Before=’InstallFinalize’ 时候执行相应的操作

本文来自: wix tips

How to make searching faster

<Category: Lucene>

http://wiki.apache.org/lucene-java/ImproveSearchingSpeed

Here are some things to try to speed up the seaching speed of your Lucene application. Please see ImproveIndexingSpeed for how to speed up indexing.

阅读这篇文章的其余部分

本文来自: How to make searching faster