<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.5.1" -->
<rss version="0.92">
<channel>
	<title>Tuifei.com</title>
	<link>http://www.tuifei.com</link>
	<description>颓废?</description>
	<lastBuildDate>Sat, 27 Sep 2008 08:37:02 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>linux sysctl.conf中相关重要设定的详细说明</title>
		<description>　　net.ipv4.tcp_syncookies = 1
表示开启SYN Cookies。当出现SYN等待队列溢出时，启用cookies来处理，可防范少量SYN攻击，默认为0，表示关闭；
　　net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接，默认为0，表示关闭；
　　net.ipv4.tcp_tw_recycle = 1
表示开启TCP连接中TIME-WAIT sockets的快速回收，默认为0，表示关闭。
　　net.ipv4.tcp_fin_timeout = 30
表示如果套接字由本端要求关闭，这个参数决定了它保持在FIN-WAIT-2状态的时间。
　　net.ipv4.tcp_keepalive_time = 1200
表示当keepalive起用的时候，TCP发送keepalive消息的频度。缺省是2小时，改为20分钟。
　　net.ipv4.ip_local_port_range = 1024 ? ?65000
表示用于向外连接的端口范围。缺省情况下很小：32768到61000，改为1024到65000。
　　net.ipv4.tcp_max_syn_backlog = 8192
表示SYN队列的长度，默认为1024，加大队列长度为8192，可以容纳更多等待连接的网络连接数。
　　net.ipv4.tcp_max_tw_buckets = 5000
表示系统同时保持TIME_WAIT套接字的最大数量，如果超过这个数字，TIME_WAIT套接字将立刻被清除并打印警告信息。默认为180000，改为5000。对于Apache、Nginx等服务器，上几行的参数可以很好地减少TIME_WAIT套接字数量，但是对于Squid，效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量，避免Squid服务器被大量的TIME_WAIT套接字拖死。


$ /proc/sys/net/core/wmem_max
最大socket写buffer,可参考的优化值:873200

$ /proc/sys/net/core/rmem_max
最大socket读buffer,可参考的优化值:873200

$ /proc/sys/net/ipv4/tcp_wmem
TCP写buffer,可参考的优化值: 8192 436600 873200

$ /proc/sys/net/ipv4/tcp_rmem
TCP读buffer,可参考的优化值: 32768 436600 873200

$ /proc/sys/net/ipv4/tcp_mem
同样有3个值,意思是:
net.ipv4.tcp_mem[0]:低于此值,TCP没有内存压力.
net.ipv4.tcp_mem[1]:在此值下,进入内存压力阶段.
net.ipv4.tcp_mem[2]:高于此值,TCP拒绝分配socket.
上述内存单位是页,而不是字节.
可参考的优化值是:786432 1048576 1572864

$ /proc/sys/net/core/netdev_max_backlog
进入包的最大设备队列.默认是300,对重负载服务器而言,该值太低,可调整到1000.

$ /proc/sys/net/core/somaxconn
listen()的默认参数,挂起请求的最大数量.默认是128.对繁忙的服务器,增加该值有助于网络性能.
可调整到256.

$ /proc/sys/net/core/optmem_max
socket buffer的最大初始化值,默认10K.

$ /proc/sys/net/ipv4/tcp_max_syn_backlog
进入SYN包的最大请求队列.默认1024.对重负载服务器,增加该值显然有好处.
可调整到2048.

$ /proc/sys/net/ipv4/tcp_retries2
TCP失败重传次数,默认值15,意味着重传15次才彻底放弃.可减少到5,以尽早释放内核资源.

$ /proc/sys/net/ipv4/tcp_keepalive_time
$ /proc/sys/net/ipv4/tcp_keepalive_intvl
$ /proc/sys/net/ipv4/tcp_keepalive_probes
这3个参数与TCP KeepAlive有关.默认值是:

tcp_keepalive_time = 7200 seconds (2 hours)
tcp_keepalive_probes ...</description>
		<link>http://www.tuifei.com/2008/09/27/linux-sysctl.htm</link>
			</item>
	<item>
		<title>zt 构建支持Master/Slave读写分离的数据库操作类</title>
		<description>一般对于访问量比较大的网站来说，采用基本的MySQL Master/Slave 结构是很正常，而且一般都是一台Master，多台Slave的情况，但是一般在进行这个访问的时候问题比较多，因为读写操作必须分离，所以今天没事就构造了这个数据库操作类。

数据库操作类基本特点：
1. 支持一台Master，多台Slave的情况，所有SQL能够强制调用Master来处理
2. 能够自动识别是写入还是读取操作，然后自动连接到需要的Master/Slave服务器。 操作过程中能够自动识别，如果没有Slave，则所有操作都是指向Master的，如果当前连接的Slave无法工作则自动连接其他Slave。对于Slave读取数据采用随机挑选Slave服务器的方式来读取数据
3. 在同一个PHP程序中能够重用连接，不会重复去连接数据库，减少因为反复连接带来的资源消耗

缺点：
1. 对于Slave是采取随机选择Slave来进行读取数据，所以不是真正意义上的负载均衡
2. 每次初始化都是连接好所有的数据库，比较浪费连接资源和时间。 在多个PHP程序中无法保持数据库连接，每次启动都需要连接到远程数据库，浪费了很多连接处理的时间，但是这个跟PHP是脚本程序有关。
3. 无法支持多个Master的情况，同时可定制性比较差，很多东西都是固定的，必须按照固有模式来执行查询

相关：
代码中注释不是很全，部分注释而且不一定正确，所以如果自己使用，最好进行二次修改。
本数据库类参考了我之前写的《简单快速有趣的MySQL数据库操作类：SimpleDB》，可以对照着看。
（类库中的接口我大部分都经过了测试，都正常使用，如果发现不正常或者有更好的想法，请留言）


文件：db_common.class.php

 </description>
		<link>http://www.tuifei.com/2008/09/27/master_slave_mysql.htm</link>
			</item>
	<item>
		<title>bind 下的委派</title>
		<description>在BIND DNS服务器中创建一个DNS子域是相当简单的，步骤分为三个部分：

1.命名子域

2.将子域委派给一个或者多个域名服务器

3.提供“域名服务器黏结记录”（nameserver glue records）和子域的命名空间（namespace）内部的主机名给任意一个委派的域名服务器，以便子域外部的机器可以解析这个域名服务器。


事实上，第一和第二步已经实现了每个子域名服务器的单一记录，当你将子域名委派给在DNS子域里面有主机名的服务器时，需要第三步，但并不是必需的。

创建子域

为了创建子域，你需要以root进入到父域名的主DNS服务器，编辑父域名的zone文件，完成编辑之后重新加载zone（reload zone）。

在BIND的配置文件/etc/named.conf中zone声明了你的父域，定义了zone文件名和你想要修改的域。

记住，zone文件将会存放在/etc/named.conf中全局选项所声明的directory下（默认是/var/named）。

这里是named.conf文件zone生命的一个例子，zone文件名是testdomain.bogus.zone:

zone "testdomain.bogus" {
        type master;
        file "testdomain.bogus.zone";
        allow-update { none; };
};
      

在修改zone文件之前先做个备份，然后用你喜欢的文本编辑器打开zone文件：


      # cd /var/named

 ...</description>
		<link>http://www.tuifei.com/2008/08/18/bind-accreditation.htm</link>
			</item>
	<item>
		<title>用Excle的Vlookup函数对比二张表格中的不同数据</title>
		<description>需求：二张sheet表，一张包含有完整的身份证信息及姓名，另一张仅有前一张的部分身份证。现在要从部分身份证信息的表中查找完整信息表中的姓名。
函数： VLOOKUP 
说明： 在表格或数值数组的首列查找指定的数值，并由此返回表格或数组当前行中指定列处的数值。 
当比较值位于数据表首列时，可以使用函数 VLOOKUP 代替函数 HLOOKUP。 
在 VLOOKUP 中的 V 代表垂直，H代表水平。 
语法： VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 
参数说明： Lookup_value   为需要在数据表第一列中查找的数值。Lookup_value 可以为数值、引用或文本字符串。 
Table_array   为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用，例如数据库或数据清单。 
如果 range_lookup 为 TRUE，则 table_array 的第一列中的数值必须按升序排列：…、-2、-1、0、1、2、…、-Z、FALSE、TRUE； 
否则，函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE，table_array 不必进行排序。 
Table_array 的第一列中的数值可以为文本、数字或逻辑值，文本不区分大小写。 
Col_index_num   为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时，返回 table_array ...</description>
		<link>http://www.tuifei.com/2008/08/15/vlookup.htm</link>
			</item>
	<item>
		<title>sysctl.conf优化方案</title>
		<description>转至CU
###################
所有rfc相关的选项都是默认启用的，因此网上的那些还自己写rfc支持的都可以扔掉了:)
###############################

net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
#############################
通过源路由，攻击者可以尝试到达内部IP地址 --包括RFC1918中的地址，所以
不接受源路由信息包可以防止你的内部网络被探测。
#################################

net.inet.tcp.drop_synfin=1
###################################
安全参数，编译内核的时候加了options TCP_DROP_SYNFIN才可以用，可以阻止某些OS探测。
##################################

kern.maxvnodes=8446
#################http://www.bsdlover.cn#########
vnode 是对文件或目录的一种内部表达。 因此， 增加可以被操作系统利用的 vnode 数量将降低磁盘的 I/O。
一般而言， 这是由操作系统自行完成的，也不需要加以修改。但在某些时候磁盘 I/O 会成为瓶颈，
而系统的 vnode 不足， 则这一配置应被增加。此时需要考虑是非活跃和空闲内存的数量。
要查看当前在用的 vnode 数量：
# sysctl vfs.numvnodes
vfs.numvnodes: 91349
要查看最大可用的 vnode 数量：
# sysctl kern.maxvnodes
kern.maxvnodes: 100000
如果当前的 vnode 用量接近最大值，则将 kern.maxvnodes 值增大 1,000 可能是个好主意。
您应继续查看 vfs.numvnodes 的数值， 如果它再次攀升到接近最大值的程度，
仍需继续提高 kern.maxvnodes。 在 top(1) 中显示的内存用量应有显著变化，
更多内存会处于活跃 (active) 状态。
####################################


kern.maxproc: 964
#################http://www.bsdlover.cn#########
Maximum number of processes
####################################
kern.maxprocperuid: 867
#################http://www.bsdlover.cn#########
Maximum processes allowed per userid
####################################
因为我的maxusers设置的是256，20+16*maxusers＝4116。
maxprocperuid至少要比maxproc少1，因为init(8) 这个系统程序绝对要保持在运作状态。
我给它设置的2068。


kern.maxfiles: ...</description>
		<link>http://www.tuifei.com/2008/07/23/sysctlconf.htm</link>
			</item>
	<item>
		<title>杭州住房公积金贷款标准</title>
		<description>    中新浙江网6月13日电 昨天，杭州一些房产及金融机构接到了来自杭州住房公积金管理中心《关于明确住房公积金贷款额度审批口径的通知》(以下简称“通知”)。该通知明确，住房公积金贷款额度的审批将有重大调整，职工公积金月缴存额高于杭州市月缴存标准(438元)的，最高可贷额度调整为30万元；低于的(但不低于最低月缴存额标准182元)最高贷款额度则调整为20万元。

　　通知同时规定，职工及其配偶均缴存市住房公积金的，具体可贷额度按人分别计算，合计最高贷款额度为50万元。相关部门透露，具体实施细则近期将出台。

　　缴存额标准提至438元

　　该通知表明：“自2008年6月1日起，月缴存额标准为438元。同时，根据有关规定，职工最低月缴存额不低于182元。”

　　而在此前的旧标准中，月缴存额标准为393元，最低月缴存额为182元。也就是说，以后公积金的月缴存额标准将由393元提至438元，最低月缴存额则保持182元不变。

　　个人最高可贷降至30万

　　该通知明确：“职工实际月缴存额(连续12个月正常缴存)高于月缴存额标准的，最高可贷额度为30万元；低于的(但不低于最低月缴存额)，最高可贷额度为20万元。”

　　而在此前的旧标准中，申请人每月缴交的住房公积金≥182元(个人合计缴交)同时≤393元(个人合计缴交)的，贷款的最高额度为30万元；申请人每月缴纳的住房公积金≥393元(个人合计缴交)的，贷款最高额度为50万元。

　　这项新规定预示着，个人最高可贷额度由旧标准的50万元降为30万元，同时如果申请人每月缴纳公积金≥182元并且≤393元，那么也会受到影响，其可贷最高额度由旧标准的30万元降为20万元。

　　夫妻合贷标准有所变化

　　通知还明确：“职工及其配偶均缴存住房公积金的，具体可贷额度按人分别计算，且合计最高可贷额度为50万元。”

　　而在此前的旧标准中，若夫妻双方每月的公积金缴交额均在182元和393元之间(不含393元)，但是双方公积金缴交额合计数在393元以上，贷款的额度也可以达到50万元。

　　因此根据新规定可知，如果夫妻双方公积金缴交额均在182元和393元之间，那么可贷额度按人分别计算最高均为20万元，也就是说在这种情况下，两人的合贷最高额度由50万元降为40万元。

　　90平方米为界区别首付

　　通知表示：“经济适用房和套型建筑面积在90平方米以下的商品房贷款，可贷额度按贷款成数不高于总房价的80%确定；套型建筑面积在90平方米以上的商品房贷款，可贷额度按贷款成数不高于70%确定。”

　　也就是说，以建筑面积90平方米为界，首付有区别。经济适用房和套型建筑面积90平方米以下的商品房贷款，最低首付可达到两成；而建筑面积90平方米以上的，最低首付要三成。

　　二次申请可贷成数减少

　　该通知明确，“二次住房公积金贷款的可贷额度按贷款成数不高于总价的60%确定。”

　　旧标准中，“职工首次住房公积金贷款建筑面积在140平方米或者其他规定标准以下，在贷款还清后因改善住房条件重新购、建房、且符合贷款基本条件的，可申请二次住房公积金贷款”。也就是说，此前二次购房可按普通住房标准按揭七成，新规定明确，按揭为六成，可按揭房款少了一成。

　　二手房龄要求更苛刻

　　该通知还明确，“房屋建成年份2000年(含)之后的二手房贷款，可贷额度按贷款成数不高于总房价的70%确定；2000年之前的，按贷款成数不高于60%确定。”即2000年(含)之后的二手房贷款，最低首付三成；2000年以前的最低首付四成。

　　旧标准以“1995年”为界，1995年(含)以前最低首付四成，1995年以后最低首付三成。新旧标准相比，公积金放贷对房龄要求更苛刻。

　　借款人信用有了量化标准

　　通知中明确：“信用状况应重点审查借款人及其配偶的信用卡和个人贷款近24个月的每月还款记录。贷款还款状态出现逾期91天及以上或当前逾期，或者信用卡还款状态为当前透支180天以上，且未提供银行出具的贷款结清证明或信用卡还款证明的，一般不予贷款。”

　　旧标准中，对借款人信用审核比较模糊，没有如此明确的标准。通知同时还规定，职工月还款额不得高于家庭月收入乘以还款能力系数(55%)扣除家庭其他贷款月还款额的余额。其中，家庭月收入是指职工或与其房产共有权人的收入总和。

　　作者：余丽
Share This
 </description>
		<link>http://www.tuifei.com/2008/06/13/loan_of_accumulation_fund.htm</link>
			</item>
	<item>
		<title>The table is full mysql 错误号: 1114处理方法</title>
		<description>运行vbb登陆后台admincp时，mysql返回 #1114 - The table ‘xxxx’ is full 
由于内存表的大小超过了规定的范围
网上提到的有两种解决方法， 
一种是修改tmp_table_size参数，另外一种是修改max_heap_table_size参数。。。 
[root@localhost etc]# vi /etc/rc.d/init.d/mysql 
找到 
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 & 
修改为 
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file -O tmp_table_size=64M -O max_heap_table_size=32M >/dev/null 2>&1 & 
-
重启mysql 
[root@localhost etc]# /usr/bin/mysqladmin -u root -p shutdown 
Enter password: 
[root@localhost etc]# /etc/init.d/mysql start 
[root@localhost etc]# mysql 
-
查看是否己修改 ...</description>
		<link>http://www.tuifei.com/2008/05/27/the-table-is-full-mysql.htm</link>
			</item>
	<item>
		<title>[转帖]Clock in a Linux Guest Runs More Slowly or Quickly Than Real Time Products</title>
		<description>VMware ACE 
 
VMware ESX Server 
 
VMware GSX Server 
 
VMware Server 
 
VMware Workstation 
 
 
Details
  
 
 
Why does the clock in my Linux guest consistently run more slowly or more quickly than real world time?
 
Solution
  
 
 
Linux guest operating systems keep ...</description>
		<link>http://www.tuifei.com/2008/05/16/esx-unix-time-sync.htm</link>
			</item>
	<item>
		<title>ESX NTP 虚拟机时间同步</title>
		<description>我在esx3.02的操作过程，大家需要做的是打开防火墙的端口161。
[root@esx02 root]#esxcfg-firewall --enableService ntpClient

[root@esx02 root]# vi /etc/ntp.conf 
# Prohibit general access to this service.
restrict default ignore

# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict 127.0.0.1
restrict default kod nomodify notrap
server 0.vmware.pool.ntp.org
server 1.vmware.pool.ntp.org
server 2.vmware.pool.ntp.org
driftfile /var/lib/ntp/drift


# ...</description>
		<link>http://www.tuifei.com/2008/05/16/esx-ntp-sync-confi.htm</link>
			</item>
	<item>
		<title>linux下安装及配置snmp服务</title>
		<description>1、确保本机已经安装了snmp服务 


[root@idc ~]# rpm -qa &#124;grep snmp 

net-snmp-libs-5.1.2-11.EL4.7 

net-snmp-5.1.2-11.EL4.7 


如果没有，那么放入linux安装盘找到snmp的rpm包进行安装，或者到网上搜索适合自己linux发行版本的rpm包进行安装 
在新版本的centos及redhat es版本中可能在安装时会提示依赖性错误，这时需要安装lm_sensors-2.8.7-2.40.3.i386.rpm，再安装netsnmp软件。

2、snmpd.conf文件配置 

按照如下方式修改snmpd.conf文件 


A、修改默认的community string 

com2sec notConfigUser default public 

将public修改为你才知道的字符串 


B、把下面的#号去掉 

#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc 


C、把下面的语句 

access notConfigGroup "" any noauth exact systemview none none 

改成： 

access notConfigGroup "" any noauth exact mib2 none none 


3、重启snmpd服务 


#/etc/rc.d/init.d/snmpd restart 


完成snmpd的配置 ...</description>
		<link>http://www.tuifei.com/2008/05/12/linux-snmp-config.htm</link>
			</item>
</channel>
</rss>
