PHP实现http与https转化
[
2010/01/04 15:55 | by suibing ]
2010/01/04 15:55 | by suibing ]
如果网页使用https访问,在网页开头加入以下代码:
<?php
//http转化为https
if ($_SERVER["HTTPS"]<>"on")
{
$xredir="https://".$_SERVER["SERVER_NAME"].
$_SERVER["REQUEST_URI"];
header("Location: ".$xredir);
}
?>
如果网页使用http访问,在网页开头加入以下代码:
<?php
//https转化为http
if ($_SERVER["HTTPS"]=="on")
{
$xredir="http://".$_SERVER["SERVER_NAME"].
$_SERVER["REQUEST_URI"];
header("Location: ".$xredir);
}
?>
<?php
//http转化为https
if ($_SERVER["HTTPS"]<>"on")
{
$xredir="https://".$_SERVER["SERVER_NAME"].
$_SERVER["REQUEST_URI"];
header("Location: ".$xredir);
}
?>
如果网页使用http访问,在网页开头加入以下代码:
<?php
//https转化为http
if ($_SERVER["HTTPS"]=="on")
{
$xredir="http://".$_SERVER["SERVER_NAME"].
$_SERVER["REQUEST_URI"];
header("Location: ".$xredir);
}
?>
现在买房子,傻瓜才掏钱!
[
2009/12/28 16:04 | by suibing ]
2009/12/28 16:04 | by suibing ]
本文是在一个网友的空间看到,觉得有点意思就贴过来了,如有不妥,请直接BAN
“现在买房子,傻瓜才掏钱!”
昨晚,和一个开典当行的同学喝酒。
我问同学,“你买了多少套房子,多少间铺面?”
“房子22套,铺面12间。”同学炫耀似的答道。
“那你花了多少钱呢?”同学虽然是千万级的富翁,但他也不至于能把千万多的钱压在固定资产上吧!我心中默算了一下,非常怀疑!
“现在买房子,傻瓜才掏钱!亏你还是个生意人!”同学鄙视的看着我。
同学的话,简直令我震耳欲聋,使我目瞪口呆。我连忙虚心请教。于是,同学就对我说出一番匪夷所思、惊世骇俗的话来......以下,都是我同学的话,虽然词句有些出入,但基本语意我还是转述清楚了的。
一、买房不掏钱,你是怎么操作的?
同学的话——
你知道,我的典当生意完全是靠钱生钱。第一次买房时,虽然我有能力一次性付清全款,但我还是不愿意那么多的现金被房子压死。那时,正流行“零首付”,于是,我一分钱没花,贷款18万买了房(贷款期限为一年)。
一年期满,要还房款和利息了。也不知道是我幸运呢?还是我倒霉!那时,我的资金被一笔业务占用了。为了业务,我不仅还不起房款不说,还得另外新增贷款。迫不得已,我找老关系——银行的信贷部经理沟兑。当我吞吞吐吐的把“延期还房款并另外新增贷款”的要求说出来后,没想到,信贷经理却诡秘的一笑,非常爽快的答应了。
信贷经理给我出的主意很简单:让我老婆,以两倍的价格,贷款买我的房子,贷款期限也是一年。
“两倍的贷款,那就是两倍的利息啊!你这不是变着方的剥削我吗?”我还没有反应过来。
“如果到时,你不还款呢?”信贷经理很镇定。
“啊......”
“被银行收房,没有什么大不了的!关键是除去税费后,我还凭空白得了17万。不,这17万我可不能一个人得,我至少要分给他5万。”很快,我反应过来。于是,我对信贷经理会心的一笑......
这,就是我第一次买房的经历。
我后来的买房经历都与此类似,也就是:坚决的不掏一分钱,全部用银行的贷款买房子;然后,如果遇见不明真象的投资者(说是投资者,其实是傻帽)买房,那就高价卖给他。如果一直没有投资者买房,那就不断的把自己的房子加价转贷给自己,不断的用银行的钱来还银行的债。
并且,我是开典当行的,与银行的关系是一般人无法比的。一般老百姓买房,大都选择20年按揭,而我买房从来都是只贷款一年,到期了才还本金和利息。这样操作,不用交月供。而贷款到期后,我只须做做“纸面文章”转贷款一下。实际上,我一分钱也不用掏。
二、我不信,在实际生活中能有如此荒谬的事情。你讲的是“童话”吧!
同学的话:兄弟!我是看你人对,才给你讲这些掏心窝的话。你怎么可以不相信我呢?你要怎样才能相信我呢?
作者发言:你就给我讲点实际的例子吧!
同学的话:你知道王二麻子是怎么发家的吗?
作者发言:“那你说说。”王二麻子是我的另外一个同学,现在是开发房地产的亿万级富翁。
同学的话——
那我就说说。
想当年,王二麻子那个落魄啊!就连他注册公司的注册资金,也是我临时拆借给他的。如今,别看王二麻子表面风光,他拿地的钱,是从银行贷款的;修房子的钱,是建筑商垫资的。总之,他就是一个完全的“空手道”。
房子修好后,王二麻子在正式开盘前,通常要举行一个“内部认购会”。这个内部认购,其实就是王二麻子召集公司内部员工和一些象我这样的、相熟的炒房客(或者干脆是一些从招聘会上收集的、众多的、应聘者的“身份证复印件”),以这些人的名义来买房子,全部用银行贷款来买。这,就是所谓的“开发商囤房”。
并且,此次交易上报给银行的交易价,必须比实际的内部交易价提高30%。为什么?因为贷款买房要首付两成啊!举个例子,如果你想收回100万,那你就必须以130万的房价向银行贷款。这样,银行给你的钱就是:130万×0.8=104万;你实际装进口袋的钱就是:104万—4万(给相关银行人员的 “好处费”)=100万。
就这样,通过开盘前的内部认购,王二麻子其实已经成功的全部收回了投资,把所有的风险转给了银行。到这时,王二麻子才会开始打广告卖房子,并归还“买地的银行贷款”和“修房子的建筑商垫资”。
作者发言:后面又怎么操作呢?
同学的话——
你怎么那样笨啊!稍微聪明一点的人都能想到,后面的操作方法,其实与我炒房的方法是一样的,也就是:“如果遇见不明真象的投资者(说是投资者,其实是傻帽)买房,那就高价卖给他;如果一直没有投资者买房,那就不断的把自己的房子加价转贷给自己,不断的用银行的钱来还银行的债。”
不过,由于已经收回了按揭贷款的首付款,所以后面的操作并不需要每一次都加价30%,只需按着楼市房价本来的上涨幅度加价就可以了(即每年上涨14%左右)。
什么?万一房价上涨幅度不足于支付贷款利息怎么办?笑话,你什么时候看见过中国楼市的房价上涨幅度低于当年的贷款利息了?
明白了吧!这,就是中国楼市的房价只能上涨不能下跌;并且,房价的上涨幅度还不能低于当年贷款利息的真正原因!!
想想就觉得可笑,居然有学者说,“建筑成本和地价的不断上涨,是房价飞涨的原因。”这简直是扯蛋!其实,“金融成本”才是房价构成的大头,至少要占目前房价的50%。
以上海倒塌的莲花河畔景苑为例。网上公布,其楼面价格不到604元/平方米,建筑成本也不到1300元/平方米(其实,网上公布的建筑成本并不准确。市法院电梯公寓的建筑质量总该比它好吧,建筑成本也没有超过1000元/平方米)这么便宜的房子,开发商为什么非得要把它卖到14000元/平方米呢?卖低一点、少赚一点不行吗?答案是不行的。原因很简单,“金融游戏”是有成本的,每这样操作一次,房子就必须加价一次。只有不断的加价,上述操作才有生存的空间。所以,莲花河畔景苑前年卖7000元/平方米,去年卖10000元/平方米,今年就得非要卖14000元/平方米。俗话说“豆腐盘成了肉价钱”。这,就是“金融游戏”的代价!
有句话道出了目前中国楼市的实情,“房子是用来炒的,不是用来住的;商品房是卖给银行的,不是卖给老百姓的!
老同学,请你想一想,现在的楼市,房价明明已经远远的超过了老百姓的实际购买能力(也就意味着房子永远卖不出去),为什么房价还会不断的上涨呢?并且,还要“量、价齐涨”呢?原因何在?正在于此!
三、你讲的,只是极个别的现象,不能代表中国楼市的整体形势。
同学的话——
老同学,你太孤陋寡闻了吧。请看:
李树彪案:1999年9月8日到2004年1月15日,湖南郴州市住房公积金管理中心原主任李树彪骗取公积金贷款、银行贷款共计44笔,涉案金额1.2亿元。
康明案:2000年前后,河南郑州康明置业有限公司通过东明花园414套房源,在工商银行、交通银行、建设银行、招商银行进行重复抵押贷款共690多套,至少套取银行资金2亿元。
姚康达案:从2002年至2003年上半年,中国工商银行上海外高桥保税区支行向“姚康达”一人发放房贷7141万元,用于炒作128套住房。
森豪虚假按揭案:从1997年年至2002年上半年,北京市华运达房地产开发公司以森豪公寓、太利花园为幌子,采取假按揭的方式,向中行北京市分行、北京银行中关村支行、北京银行展览路支行三家银行骗贷共计16.2亿元。建行广州分行案:2002年,审计署抽查建设银行广州地区八家支行的住房按揭贷款,发现10亿元虚假按揭。仅广东省汕尾市公安局某副局长一人,即骗取建行广州市芳村支行按揭贷款3793万元。
曲沪平案:2006年,上海浦东发展银行陆家嘴支行在已发放贷款中,发现1.26亿元个人房产按揭贷款存在抵押不实,贷款代理人为“曲沪平”。其后更查出与曲相关的房贷高达91笔,涉及金额4亿元左右。银行不得不委托房屋中介公司出售抵押房产,以回收问题贷款。
同泰案:2006年,北京同泰房地产公司涉嫌利用87份假业主所签购房合同,从银行骗贷6700万元。
成都虚构房产骗贷案:2005年至2008年期间,犯罪嫌疑人唐某勾结成都市房管局工作人员以虚构房产的方式办理房产证进行骗贷。现已发现的涉案房产证已超过一百多套,涉及金额近二千万元!而且事态还在进一步发展中。
另外,今年银监会三令五申的明确要求,“贷款发放必须用于满足实体经济的有效信贷需求,防止信贷资金流入楼市”。然而,40000亿资金依然流入楼市......
老同学,请你想一想,为什么会发生那么多的这类事情呢?为什么全国的银行都明知道是假按揭也要把钱贷给地产商呢?难道银行的官员们都是傻子吗?
其实,银行的官员们一点都不傻。
原因在于,银行内部人员与开发商其实是狼狈为奸的同伙。参与这项操作的某些银行内部人员决不是希望通过购房者支付贷款利息为银行赚钱,坦白地说,他们是在参与分赃——他们与开发商一起盗取不义之财,将风险转嫁给国家银行,而买单的是真实的购房者。一旦真实的购房者无法买下这个巨单,银行就出现危机。
这时候,买单的就是全国人民了,国家必须银行注资,消除烂帐。国家的钱哪里来?印钞票!结果是什么?通货膨胀,物价飞涨,老百性的钱不值钱了,或者说老百姓的钱被抢了,被谁抢了?被国家抢去堵漏了,堵开发商和银行某些蛀出来的大洞。这个洞如此之大,堵住了也是一个丑陋的疤,而疼的永远是百姓。
所以我会说——房地产业已经成为相关单位、相关部门团结起来瓜分国家金钱(其实是老百姓的存款)的道具。
违规又有什么大不了的?银行官员们不怕啊!只要表面的纸上手续完备了,我就没有了责任。即使按揭贷款是假的,又有什么关系?况且银行有国家这个后台,就是亏了也不怕,反正银行的官员们现在挣了钱就行。至于银行以后不行了,自然有国家来管,况且那是下届银行官员的事情。难怪中国银行的坏账率居然在 40%以上!原来,在中国,最大的腐败在银行!!
四、我依然认为,这只是极个别的现象。如果你讲的是普遍的现象,为什么还没有开发商被收楼呢?
同学的话——
原因有许多,简单的有:
1、你不关心房地产界的新闻。比如“曲沪平案”,上海浦东发展银行陆家嘴支行就收了楼,不得不成为了“房东”;
2、由于开发商在银行内部的同伙,掩护工作做的好的缘故,案子没暴。
掩护工作怎么做?很简单——只要一近债务偿还期,开发商就会和“银行内部的同伙”们一起,把房子又一次加价卖给(转按揭)其它的“身份证复印件”(其实,房子依然在开发商手里)。这样操作,开发商永远不会被收楼。
虽然这样操作,房价会不断的上涨,并很快的远远超过老百姓的实际承受能力(也就意味着房子永远卖不出去)。但是,这样的操作,如果只从官样程序上来看、只从表面的纸上手续来看的话,它是永远合法的。这就是银行官员们敢于给开发商打掩护的原因——因为以目前的银行制度来说,只要表面的纸上手续完备了,银行的官员就没有了责任。
五、你的意思是,目前的银行贷款制度有着严重的漏洞?
同学的话——
当然!
我能不花钱的买那么多的房子和铺面,甚至还靠房子从银行套出那么多的周转资金做生意,这一切,全都得感谢银行的制度漏洞啊!银行的贷款制度,真的是“为人民服务的好制度”啊!
作为一个典当行的老板,以同行的眼光来看,我认为银行贷款的制度漏洞有:
1、抵押物价值的评定方法有缺陷。
比如,明明开发商拿地只用了5000万,他却可以用这块地抵押贷款1个亿;比如,开发商修楼修到盖顶,明明只用了7000万(含地钱),他却可以用这个楼抵押贷款2个亿。
如果,按照我们典当行的规矩来办,事情又会怎样呢?
当开发商用这块地抵押贷款时,我会亲自去核实:开发商拿这块地,是否真的给了政府5000万。并且,如果这个情况属实,他也最多只能贷款4000万。因为我要预提风险基金啊!
当开发商用这个楼抵押贷款时,我也会亲自去核实:开发商修这个楼,是否真的花了2000万(只算建筑成本,不含地)。我会按照各种人工、各种建筑材料的最低价来核算这个楼的建筑成本。并且,如果开发商修这个楼的确花了2000万,他也最多只能贷款7000万×0.8=5600万(连地一起抵押)。
最后,当购房者按揭贷款时,我绝对不可能按照“购房合同交易价”来发放贷款,购房者最多能获得的贷款金额是:7000万×0.8×购房面积/此楼总面积。
举个例子:有个卖衣服的商人因为生意周转,需要以衣服为抵押物向银行贷款。你说说,银行是该“按照衣服出厂价的8折”给他贷款呢?还是该“按照衣服零售价的8折”给他贷款。
作者发言:当然该按出厂价算。如果按照零售价算的话,卖衣服的商人干脆不用开店了,他直接把衣服卖给银行赚钱更快!恩,我明白了,怪不得在中国会出现“房子是用来炒的,不是用来住的;商品房是卖给银行的,不是卖给老百姓的”这样的奇闻!!!
同学的话:是啊!抵押房的价值,不能由客户之间的交易来决定啊!!
2、责任追究方法有缺陷
“只要表面的纸上手续完备了,银行官员就没有了责任。”这怎么可以呢?在我的典当行,我可不管你的纸上手续是否已经完备,只要是你负责的业务出了问题,嘿嘿!我就找你算帐!!!
另外,让国家损失16.2亿的森豪虚假按揭案暴露后,相关的银行官员居然没有被追究责任,这怎么可以呢?嘿嘿!如果这样的事是发生在我的典当行,不要说让他家破人亡,我至少会让他和他的亲戚倾家荡产!!!
作者发言:是啊!发生金融案件后,居然不追究相关银行官员的责任。换成是我,我也觉得“打马虎”比尽忠职守更合算!!!怪不得中国的金融案件层出不穷。听君一席话,胜读十年书!听你说到这儿,就连我这么笨的人也知道了应该如何理顺楼市——只要严格金融制度,让炒房的人不能获得投机的资金,楼市的泡沫自然的就会散去!!
这也是HSB们总是判断错误的原因!
(注:该文系转载)
“现在买房子,傻瓜才掏钱!”
昨晚,和一个开典当行的同学喝酒。
我问同学,“你买了多少套房子,多少间铺面?”
“房子22套,铺面12间。”同学炫耀似的答道。
“那你花了多少钱呢?”同学虽然是千万级的富翁,但他也不至于能把千万多的钱压在固定资产上吧!我心中默算了一下,非常怀疑!
“现在买房子,傻瓜才掏钱!亏你还是个生意人!”同学鄙视的看着我。
同学的话,简直令我震耳欲聋,使我目瞪口呆。我连忙虚心请教。于是,同学就对我说出一番匪夷所思、惊世骇俗的话来......以下,都是我同学的话,虽然词句有些出入,但基本语意我还是转述清楚了的。
一、买房不掏钱,你是怎么操作的?
同学的话——
你知道,我的典当生意完全是靠钱生钱。第一次买房时,虽然我有能力一次性付清全款,但我还是不愿意那么多的现金被房子压死。那时,正流行“零首付”,于是,我一分钱没花,贷款18万买了房(贷款期限为一年)。
一年期满,要还房款和利息了。也不知道是我幸运呢?还是我倒霉!那时,我的资金被一笔业务占用了。为了业务,我不仅还不起房款不说,还得另外新增贷款。迫不得已,我找老关系——银行的信贷部经理沟兑。当我吞吞吐吐的把“延期还房款并另外新增贷款”的要求说出来后,没想到,信贷经理却诡秘的一笑,非常爽快的答应了。
信贷经理给我出的主意很简单:让我老婆,以两倍的价格,贷款买我的房子,贷款期限也是一年。
“两倍的贷款,那就是两倍的利息啊!你这不是变着方的剥削我吗?”我还没有反应过来。
“如果到时,你不还款呢?”信贷经理很镇定。
“啊......”
“被银行收房,没有什么大不了的!关键是除去税费后,我还凭空白得了17万。不,这17万我可不能一个人得,我至少要分给他5万。”很快,我反应过来。于是,我对信贷经理会心的一笑......
这,就是我第一次买房的经历。
我后来的买房经历都与此类似,也就是:坚决的不掏一分钱,全部用银行的贷款买房子;然后,如果遇见不明真象的投资者(说是投资者,其实是傻帽)买房,那就高价卖给他。如果一直没有投资者买房,那就不断的把自己的房子加价转贷给自己,不断的用银行的钱来还银行的债。
并且,我是开典当行的,与银行的关系是一般人无法比的。一般老百姓买房,大都选择20年按揭,而我买房从来都是只贷款一年,到期了才还本金和利息。这样操作,不用交月供。而贷款到期后,我只须做做“纸面文章”转贷款一下。实际上,我一分钱也不用掏。
二、我不信,在实际生活中能有如此荒谬的事情。你讲的是“童话”吧!
同学的话:兄弟!我是看你人对,才给你讲这些掏心窝的话。你怎么可以不相信我呢?你要怎样才能相信我呢?
作者发言:你就给我讲点实际的例子吧!
同学的话:你知道王二麻子是怎么发家的吗?
作者发言:“那你说说。”王二麻子是我的另外一个同学,现在是开发房地产的亿万级富翁。
同学的话——
那我就说说。
想当年,王二麻子那个落魄啊!就连他注册公司的注册资金,也是我临时拆借给他的。如今,别看王二麻子表面风光,他拿地的钱,是从银行贷款的;修房子的钱,是建筑商垫资的。总之,他就是一个完全的“空手道”。
房子修好后,王二麻子在正式开盘前,通常要举行一个“内部认购会”。这个内部认购,其实就是王二麻子召集公司内部员工和一些象我这样的、相熟的炒房客(或者干脆是一些从招聘会上收集的、众多的、应聘者的“身份证复印件”),以这些人的名义来买房子,全部用银行贷款来买。这,就是所谓的“开发商囤房”。
并且,此次交易上报给银行的交易价,必须比实际的内部交易价提高30%。为什么?因为贷款买房要首付两成啊!举个例子,如果你想收回100万,那你就必须以130万的房价向银行贷款。这样,银行给你的钱就是:130万×0.8=104万;你实际装进口袋的钱就是:104万—4万(给相关银行人员的 “好处费”)=100万。
就这样,通过开盘前的内部认购,王二麻子其实已经成功的全部收回了投资,把所有的风险转给了银行。到这时,王二麻子才会开始打广告卖房子,并归还“买地的银行贷款”和“修房子的建筑商垫资”。
作者发言:后面又怎么操作呢?
同学的话——
你怎么那样笨啊!稍微聪明一点的人都能想到,后面的操作方法,其实与我炒房的方法是一样的,也就是:“如果遇见不明真象的投资者(说是投资者,其实是傻帽)买房,那就高价卖给他;如果一直没有投资者买房,那就不断的把自己的房子加价转贷给自己,不断的用银行的钱来还银行的债。”
不过,由于已经收回了按揭贷款的首付款,所以后面的操作并不需要每一次都加价30%,只需按着楼市房价本来的上涨幅度加价就可以了(即每年上涨14%左右)。
什么?万一房价上涨幅度不足于支付贷款利息怎么办?笑话,你什么时候看见过中国楼市的房价上涨幅度低于当年的贷款利息了?
明白了吧!这,就是中国楼市的房价只能上涨不能下跌;并且,房价的上涨幅度还不能低于当年贷款利息的真正原因!!
想想就觉得可笑,居然有学者说,“建筑成本和地价的不断上涨,是房价飞涨的原因。”这简直是扯蛋!其实,“金融成本”才是房价构成的大头,至少要占目前房价的50%。
以上海倒塌的莲花河畔景苑为例。网上公布,其楼面价格不到604元/平方米,建筑成本也不到1300元/平方米(其实,网上公布的建筑成本并不准确。市法院电梯公寓的建筑质量总该比它好吧,建筑成本也没有超过1000元/平方米)这么便宜的房子,开发商为什么非得要把它卖到14000元/平方米呢?卖低一点、少赚一点不行吗?答案是不行的。原因很简单,“金融游戏”是有成本的,每这样操作一次,房子就必须加价一次。只有不断的加价,上述操作才有生存的空间。所以,莲花河畔景苑前年卖7000元/平方米,去年卖10000元/平方米,今年就得非要卖14000元/平方米。俗话说“豆腐盘成了肉价钱”。这,就是“金融游戏”的代价!
有句话道出了目前中国楼市的实情,“房子是用来炒的,不是用来住的;商品房是卖给银行的,不是卖给老百姓的!
老同学,请你想一想,现在的楼市,房价明明已经远远的超过了老百姓的实际购买能力(也就意味着房子永远卖不出去),为什么房价还会不断的上涨呢?并且,还要“量、价齐涨”呢?原因何在?正在于此!
三、你讲的,只是极个别的现象,不能代表中国楼市的整体形势。
同学的话——
老同学,你太孤陋寡闻了吧。请看:
李树彪案:1999年9月8日到2004年1月15日,湖南郴州市住房公积金管理中心原主任李树彪骗取公积金贷款、银行贷款共计44笔,涉案金额1.2亿元。
康明案:2000年前后,河南郑州康明置业有限公司通过东明花园414套房源,在工商银行、交通银行、建设银行、招商银行进行重复抵押贷款共690多套,至少套取银行资金2亿元。
姚康达案:从2002年至2003年上半年,中国工商银行上海外高桥保税区支行向“姚康达”一人发放房贷7141万元,用于炒作128套住房。
森豪虚假按揭案:从1997年年至2002年上半年,北京市华运达房地产开发公司以森豪公寓、太利花园为幌子,采取假按揭的方式,向中行北京市分行、北京银行中关村支行、北京银行展览路支行三家银行骗贷共计16.2亿元。建行广州分行案:2002年,审计署抽查建设银行广州地区八家支行的住房按揭贷款,发现10亿元虚假按揭。仅广东省汕尾市公安局某副局长一人,即骗取建行广州市芳村支行按揭贷款3793万元。
曲沪平案:2006年,上海浦东发展银行陆家嘴支行在已发放贷款中,发现1.26亿元个人房产按揭贷款存在抵押不实,贷款代理人为“曲沪平”。其后更查出与曲相关的房贷高达91笔,涉及金额4亿元左右。银行不得不委托房屋中介公司出售抵押房产,以回收问题贷款。
同泰案:2006年,北京同泰房地产公司涉嫌利用87份假业主所签购房合同,从银行骗贷6700万元。
成都虚构房产骗贷案:2005年至2008年期间,犯罪嫌疑人唐某勾结成都市房管局工作人员以虚构房产的方式办理房产证进行骗贷。现已发现的涉案房产证已超过一百多套,涉及金额近二千万元!而且事态还在进一步发展中。
另外,今年银监会三令五申的明确要求,“贷款发放必须用于满足实体经济的有效信贷需求,防止信贷资金流入楼市”。然而,40000亿资金依然流入楼市......
老同学,请你想一想,为什么会发生那么多的这类事情呢?为什么全国的银行都明知道是假按揭也要把钱贷给地产商呢?难道银行的官员们都是傻子吗?
其实,银行的官员们一点都不傻。
原因在于,银行内部人员与开发商其实是狼狈为奸的同伙。参与这项操作的某些银行内部人员决不是希望通过购房者支付贷款利息为银行赚钱,坦白地说,他们是在参与分赃——他们与开发商一起盗取不义之财,将风险转嫁给国家银行,而买单的是真实的购房者。一旦真实的购房者无法买下这个巨单,银行就出现危机。
这时候,买单的就是全国人民了,国家必须银行注资,消除烂帐。国家的钱哪里来?印钞票!结果是什么?通货膨胀,物价飞涨,老百性的钱不值钱了,或者说老百姓的钱被抢了,被谁抢了?被国家抢去堵漏了,堵开发商和银行某些蛀出来的大洞。这个洞如此之大,堵住了也是一个丑陋的疤,而疼的永远是百姓。
所以我会说——房地产业已经成为相关单位、相关部门团结起来瓜分国家金钱(其实是老百姓的存款)的道具。
违规又有什么大不了的?银行官员们不怕啊!只要表面的纸上手续完备了,我就没有了责任。即使按揭贷款是假的,又有什么关系?况且银行有国家这个后台,就是亏了也不怕,反正银行的官员们现在挣了钱就行。至于银行以后不行了,自然有国家来管,况且那是下届银行官员的事情。难怪中国银行的坏账率居然在 40%以上!原来,在中国,最大的腐败在银行!!
四、我依然认为,这只是极个别的现象。如果你讲的是普遍的现象,为什么还没有开发商被收楼呢?
同学的话——
原因有许多,简单的有:
1、你不关心房地产界的新闻。比如“曲沪平案”,上海浦东发展银行陆家嘴支行就收了楼,不得不成为了“房东”;
2、由于开发商在银行内部的同伙,掩护工作做的好的缘故,案子没暴。
掩护工作怎么做?很简单——只要一近债务偿还期,开发商就会和“银行内部的同伙”们一起,把房子又一次加价卖给(转按揭)其它的“身份证复印件”(其实,房子依然在开发商手里)。这样操作,开发商永远不会被收楼。
虽然这样操作,房价会不断的上涨,并很快的远远超过老百姓的实际承受能力(也就意味着房子永远卖不出去)。但是,这样的操作,如果只从官样程序上来看、只从表面的纸上手续来看的话,它是永远合法的。这就是银行官员们敢于给开发商打掩护的原因——因为以目前的银行制度来说,只要表面的纸上手续完备了,银行的官员就没有了责任。
五、你的意思是,目前的银行贷款制度有着严重的漏洞?
同学的话——
当然!
我能不花钱的买那么多的房子和铺面,甚至还靠房子从银行套出那么多的周转资金做生意,这一切,全都得感谢银行的制度漏洞啊!银行的贷款制度,真的是“为人民服务的好制度”啊!
作为一个典当行的老板,以同行的眼光来看,我认为银行贷款的制度漏洞有:
1、抵押物价值的评定方法有缺陷。
比如,明明开发商拿地只用了5000万,他却可以用这块地抵押贷款1个亿;比如,开发商修楼修到盖顶,明明只用了7000万(含地钱),他却可以用这个楼抵押贷款2个亿。
如果,按照我们典当行的规矩来办,事情又会怎样呢?
当开发商用这块地抵押贷款时,我会亲自去核实:开发商拿这块地,是否真的给了政府5000万。并且,如果这个情况属实,他也最多只能贷款4000万。因为我要预提风险基金啊!
当开发商用这个楼抵押贷款时,我也会亲自去核实:开发商修这个楼,是否真的花了2000万(只算建筑成本,不含地)。我会按照各种人工、各种建筑材料的最低价来核算这个楼的建筑成本。并且,如果开发商修这个楼的确花了2000万,他也最多只能贷款7000万×0.8=5600万(连地一起抵押)。
最后,当购房者按揭贷款时,我绝对不可能按照“购房合同交易价”来发放贷款,购房者最多能获得的贷款金额是:7000万×0.8×购房面积/此楼总面积。
举个例子:有个卖衣服的商人因为生意周转,需要以衣服为抵押物向银行贷款。你说说,银行是该“按照衣服出厂价的8折”给他贷款呢?还是该“按照衣服零售价的8折”给他贷款。
作者发言:当然该按出厂价算。如果按照零售价算的话,卖衣服的商人干脆不用开店了,他直接把衣服卖给银行赚钱更快!恩,我明白了,怪不得在中国会出现“房子是用来炒的,不是用来住的;商品房是卖给银行的,不是卖给老百姓的”这样的奇闻!!!
同学的话:是啊!抵押房的价值,不能由客户之间的交易来决定啊!!
2、责任追究方法有缺陷
“只要表面的纸上手续完备了,银行官员就没有了责任。”这怎么可以呢?在我的典当行,我可不管你的纸上手续是否已经完备,只要是你负责的业务出了问题,嘿嘿!我就找你算帐!!!
另外,让国家损失16.2亿的森豪虚假按揭案暴露后,相关的银行官员居然没有被追究责任,这怎么可以呢?嘿嘿!如果这样的事是发生在我的典当行,不要说让他家破人亡,我至少会让他和他的亲戚倾家荡产!!!
作者发言:是啊!发生金融案件后,居然不追究相关银行官员的责任。换成是我,我也觉得“打马虎”比尽忠职守更合算!!!怪不得中国的金融案件层出不穷。听君一席话,胜读十年书!听你说到这儿,就连我这么笨的人也知道了应该如何理顺楼市——只要严格金融制度,让炒房的人不能获得投机的资金,楼市的泡沫自然的就会散去!!
这也是HSB们总是判断错误的原因!
(注:该文系转载)
[DiaHosting] PPTPD一键安装包
[
2009/12/27 23:11 | by suibing ]
2009/12/27 23:11 | by suibing ]
系统要求:CentOS 5 32bits/64bits。
使用方法:
wget http://www.diahosting.com/dload/pptpd.sh
sh pptpd.sh
安装完成后会提示vpn用户名和密码。
VPN用户管理:
直接编辑/etc/ppp/chap-secrets文件,按照相同格式添加用户名和密码即可。
使用方法:
wget http://www.diahosting.com/dload/pptpd.sh
sh pptpd.sh
安装完成后会提示vpn用户名和密码。
VPN用户管理:
直接编辑/etc/ppp/chap-secrets文件,按照相同格式添加用户名和密码即可。
centos5精简优化初级教程
[
2009/12/15 14:47 | by suibing ]
2009/12/15 14:47 | by suibing ]
下面写的是针对vps的,请谨慎使用,建议先google查证一下相关命令的作用,然后再进行操作。说是精简优化,其实就是关闭一些用不上的服务,节省系统资源。一般vps的主机都做过相当的优化,商家给vps装的系统也都是针对服务器用途精简优化过的,但作为性格偏执而且资源有限的小站长,我们还是忍不住要再来优化一番,这是针对做web服务用途的vps做的精简,仅供参考。操作前做好备份,操作中一定要做好记录,都改了哪些设置要记下来。
1、精简用不上的账户
这个只是为了安全和心理上舒服一点,可以跳过。
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
userdel ftp
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
groupdel pppusers2、精简用不上的系统服务
chkconfig anacron off
chkconfig apmd off
chkconfig atd off
chkconfig autofs off
chkconfig cpuspeed off
chkconfig cups off
chkconfig cups-config-daemon off
chkconfig gpm off
chkconfig isdn off
chkconfig netfs off
chkconfig nfslock off
chkconfig openibd off
chkconfig pcmcia off
chkconfig portmap off
chkconfig rawdevices off
chkconfig readahead_early off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig smartd off
chkconfig xfs off
chkconfig ip6tables off
chkconfig avahi-daemon off
chkconfig firstboot off
chkconfig yum-updatesd off
chkconfig sendmail off
chkconfig mcstrans off
chkconfig pcscd off
chkconfig bluetooth off
chkconfig hidd off
chkconfig haldaemon off
chkconfig messagebus off
chkconfig mdmonitor off
chkconfig acpid off像sendmail之类如果是在有需要的话,就不要像我一样关闭了,我只是习惯了用smtp。
精简完之后可以运行这个命令查看一下还剩下什么服务:
chkconfig --list |grep "3:on" |awk '{print $1}' |sort3、减少Virtual Terminals
一般是默认6个,精简到2个即可。
vi /etc/inittab
把后四个前加上#注释掉,像这样:
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty64、修改完别忘了重启一下系统,看看是否运行正常,如果有问题,可以尝试逐个回复前面禁用的东西,总结出需要去掉和保留的东西。
1、精简用不上的账户
这个只是为了安全和心理上舒服一点,可以跳过。
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
userdel ftp
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
groupdel pppusers2、精简用不上的系统服务
chkconfig anacron off
chkconfig apmd off
chkconfig atd off
chkconfig autofs off
chkconfig cpuspeed off
chkconfig cups off
chkconfig cups-config-daemon off
chkconfig gpm off
chkconfig isdn off
chkconfig netfs off
chkconfig nfslock off
chkconfig openibd off
chkconfig pcmcia off
chkconfig portmap off
chkconfig rawdevices off
chkconfig readahead_early off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig smartd off
chkconfig xfs off
chkconfig ip6tables off
chkconfig avahi-daemon off
chkconfig firstboot off
chkconfig yum-updatesd off
chkconfig sendmail off
chkconfig mcstrans off
chkconfig pcscd off
chkconfig bluetooth off
chkconfig hidd off
chkconfig haldaemon off
chkconfig messagebus off
chkconfig mdmonitor off
chkconfig acpid off像sendmail之类如果是在有需要的话,就不要像我一样关闭了,我只是习惯了用smtp。
精简完之后可以运行这个命令查看一下还剩下什么服务:
chkconfig --list |grep "3:on" |awk '{print $1}' |sort3、减少Virtual Terminals
一般是默认6个,精简到2个即可。
vi /etc/inittab
把后四个前加上#注释掉,像这样:
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty64、修改完别忘了重启一下系统,看看是否运行正常,如果有问题,可以尝试逐个回复前面禁用的东西,总结出需要去掉和保留的东西。
RHEL/CENTOS 性能优化
[
2009/12/15 14:47 | by suibing ]
2009/12/15 14:47 | by suibing ]
一、前言
本文档针对OOP8生产环境,具体优化策略需要根据实际情况进行调整;本文档将在以下几个方面来阐述如何针对RedHat Enterprise Linux进行性能优化。
1) Linux Proc文件系统,通过对Proc文件系统进行调整,达到性能优化的目的。
2) Linux性能诊断工具,介绍如何使用Linux自带的诊断工具进行性能诊断。
加粗斜体表示可以直接运行的命令。
下划线表示文件的内容。
二、/proc/sys/kernel/优化
1) /proc/sys/kernel/ctrl-alt-del
该文件有一个二进制值,该值控制系统在接收到ctrl+alt+delete按键组合时如何反应。这两个值分别是:
零(0)值,表示捕获ctrl+alt+delete,并将其送至 init 程序;这将允许系统可以安全地关闭和重启,就好象输入shutdown命令一样。
壹(1)值,表示不捕获ctrl+alt+delete,将执行非正常的关闭,就好象直接关闭电源一样。
缺省设置:0
建议设置:1,防止意外按下ctrl+alt+delete导致系统非正常重启。
2) proc/sys/kernel/msgmax
该文件指定了从一个进程发送到另一个进程的消息的最大长度(bytes)。进程间的消息传递是在内核的内存中进行的,不会交换到磁盘上,所以如果增加该值,则将增加操作系统所使用的内存数量。
缺省设置:8192
3) /proc/sys/kernel/msgmnb
该文件指定一个消息队列的最大长度(bytes)。
缺省设置:16384
4) /proc/sys/kernel/msgmni
该文件指定消息队列标识的最大数目,即系统范围内最大多少个消息队列。
缺省设置:16
5) /proc/sys/kernel/panic
该文件表示如果发生“内核严重错误(kernel panic)”,则内核在重新引导之前等待的时间(以秒为单位)。
零(0)秒,表示在发生内核严重错误时将禁止自动重新引导。
缺省设置:0
6) proc/sys/kernel/shmall
该文件表示在任何给定时刻,系统上可以使用的共享内存的总量(bytes)。
缺省设置:2097152
7) /proc/sys/kernel/shmmax
该文件表示内核所允许的最大共享内存段的大小(bytes)。
缺省设置:33554432
建议设置:物理内存 * 50%
实际可用最大共享内存段大小=shmmax * 98%,其中大约2%用于共享内存结构。
可以通过设置shmmax,然后执行ipcs -l来验证。
8) /proc/sys/kernel/shmmni
该文件表示用于整个系统的共享内存段的最大数目(个)。
缺省设置:4096
9) /proc/sys/kernel/threads-max
该文件表示内核所能使用的线程的最大数目。
缺省设置:2048
10) /proc/sys/kernel/sem
该文件用于控制内核信号量,信号量是System VIPC用于进程间通讯的方法。
建议设置:250 32000 100 128
第一列,表示每个信号集中的最大信号量数目。
第二列,表示系统范围内的最大信号量总数目。
第三列,表示每个信号发生时的最大系统操作数目。
第四列,表示系统范围内的最大信号集总数目。
所以,(第一列)*(第四列)=(第二列)
以上设置,可以通过执行ipcs -l来验证。
11) 待续。。。
三、/proc/sys/vm/优化
1) /proc/sys/vm/block_dump
该文件表示是否打开Block Debug模式,用于记录所有的读写及Dirty Block写回动作。
缺省设置:0,禁用Block Debug模式
2) /proc/sys/vm/dirty_background_ratio
该文件表示脏数据到达系统整体内存的百分比,此时触发pdflush进程把脏数据写回磁盘。
缺省设置:10
3) /proc/sys/vm/dirty_expire_centisecs
该文件表示如果脏数据在内存中驻留时间超过该值,pdflush进程在下一次将把这些数据写回磁盘。
缺省设置:3000(1/100秒)
4) /proc/sys/vm/dirty_ratio
该文件表示如果进程产生的脏数据到达系统整体内存的百分比,此时进程自行把脏数据写回磁盘。
缺省设置:40
5) /proc/sys/vm/dirty_writeback_centisecs
该文件表示pdflush进程周期性间隔多久把脏数据写回磁盘。
缺省设置:500(1/100秒)
6) /proc/sys/vm/vfs_cache_pressure
该文件表示内核回收用于directory和inode cache内存的倾向;缺省值100表示内核将根据pagecache和swapcache,把directory和inode cache保持在一个合理的百分比;降低该值低于100,将导致内核倾向于保留directory和inode cache;增加该值超过100,将导致内核倾向于回收directory和inode cache。
缺省设置:100
7) /proc/sys/vm/min_free_kbytes
该文件表示强制Linux VM最低保留多少空闲内存(Kbytes)。
缺省设置:724(512M物理内存)
8) /proc/sys/vm/nr_pdflush_threads
该文件表示当前正在运行的pdflush进程数量,在I/O负载高的情况下,内核会自动增加更多的pdflush进程。
缺省设置:2(只读)
9) /proc/sys/vm/overcommit_memory
该文件指定了内核针对内存分配的策略,其值可以是0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存(参照overcommit_ratio)。
缺省设置:0
10) /proc/sys/vm/overcommit_ratio
该文件表示,如果overcommit_memory=2,可以过载内存的百分比,通过以下公式来计算系统整体可用内存。
系统可分配内存=交换空间+物理内存*overcommit_ratio/100
缺省设置:50(%)
11) /proc/sys/vm/page-cluster
该文件表示在写一次到swap区的时候写入的页面数量,0表示1页,1表示2页,2表示4页。
缺省设置:3(2的3次方,8页)
12) /proc/sys/vm/swapiness
该文件表示系统进行交换行为的程度,数值(0-100)越高,越可能发生磁盘交换。
缺省设置:60
13) legacy_va_layout
该文件表示是否使用最新的32位共享内存mmap()系统调用,Linux支持的共享内存分配方式包括mmap(),Posix,System VIPC。
0, 使用最新32位mmap()系统调用。
1, 使用2.4内核提供的系统调用。
缺省设置:0
14) nr_hugepages
该文件表示系统保留的hugetlb页数。
15) hugetlb_shm_group
该文件表示允许使用hugetlb页创建System VIPC共享内存段的系统组ID。
16) 待续。。。
四、/proc/sys/fs/优化
1) /proc/sys/fs/file-max
该文件指定了可以分配的文件句柄的最大数目。如果用户得到的错误消息声明由于打开
文件数已经达到了最大值,从而他们不能打开更多文件,则可能需要增加该值。
缺省设置:4096
建议设置:65536
2) /proc/sys/fs/file-nr
该文件与 file-max 相关,它有三个值:
已分配文件句柄的数目
已使用文件句柄的数目
文件句柄的最大数目
该文件是只读的,仅用于显示信息。
3) 待续。。。
五、/proc/sys/net/core/优化
该目录下的配置文件主要用来控制内核和网络层之间的交互行为。
1) /proc/sys/net/core/message_burst
写新的警告消息所需的时间(以 1/10 秒为单位);在这个时间内系统接收到的其它警告消息会被丢弃。这用于防止某些企图用消息“淹没”系统的人所使用的拒绝服务(Denial of Service)攻击。
缺省设置:50(5秒)
2) /proc/sys/net/core/message_cost
该文件表示写每个警告消息相关的成本值。该值越大,越有可能忽略警告消息。
缺省设置:5
3) /proc/sys/net/core/netdev_max_backlog
该文件表示在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
缺省设置:300
4) /proc/sys/net/core/optmem_max
该文件表示每个套接字所允许的最大缓冲区的大小。
缺省设置:10240
5) /proc/sys/net/core/rmem_default
该文件指定了接收套接字缓冲区大小的缺省值(以字节为单位)。
缺省设置:110592
6) /proc/sys/net/core/rmem_max
该文件指定了接收套接字缓冲区大小的最大值(以字节为单位)。
缺省设置:131071
7) /proc/sys/net/core/wmem_default
该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。
缺省设置:110592
8) /proc/sys/net/core/wmem_max
该文件指定了发送套接字缓冲区大小的最大值(以字节为单位)。
缺省设置:131071
9) 待续。。。
六、/proc/sys/net/ipv4/优化
1) /proc/sys/net/ipv4/ip_forward
该文件表示是否打开IP转发。
0,禁止
1,转发
缺省设置:0
2) /proc/sys/net/ipv4/ip_default_ttl
该文件表示一个数据报的生存周期(Time To Live),即最多经过多少路由器。
缺省设置:64
增加该值会降低系统性能。
3) /proc/sys/net/ipv4/ip_no_pmtu_disc
该文件表示在全局范围内关闭路径MTU探测功能。
缺省设置:0
4) /proc/sys/net/ipv4/route/min_pmtu
该文件表示最小路径MTU的大小。
缺省设置:552
5) /proc/sys/net/ipv4/route/mtu_expires
该文件表示PMTU信息缓存多长时间(秒)。
缺省设置:600(秒)
6) /proc/sys/net/ipv4/route/min_adv_mss
该文件表示最小的MSS(Maximum Segment Size)大小,取决于第一跳的路由器MTU。
缺省设置:256(bytes)
6.1 IP Fragmentation
1) /proc/sys/net/ipv4/ipfrag_low_thresh/proc/sys/net/ipv4/ipfrag_low_thresh
两个文件分别表示用于重组IP分段的内存分配最低值和最高值,一旦达到最高内存分配值,其它分段将被丢弃,直到达到最低内存分配值。
缺省设置:196608(ipfrag_low_thresh)
262144(ipfrag_high_thresh)
2) /proc/sys/net/ipv4/ipfrag_time
该文件表示一个IP分段在内存中保留多少秒。
缺省设置:30(秒)
6.2 INET Peer Storage
1) /proc/sys/net/ipv4/inet_peer_threshold
INET对端存储器某个合适值,当超过该阀值条目将被丢弃。该阀值同样决定生存
时间以及废物收集通过的时间间隔。条目越多,存活期越低,GC 间隔越短。
缺省设置:65664
2) /proc/sys/net/ipv4/inet_peer_minttl
条目的最低存活期。在重组端必须要有足够的碎片(fragment)存活期。这个最低
存活期必须保证缓冲池容积是否少于 inet_peer_threshold。该值以 jiffies为
单位测量。
缺省设置:120
3) /proc/sys/net/ipv4/inet_peer_maxttl
条目的最大存活期。在此期限到达之后,如果缓冲池没有耗尽压力的话(例如:缓
冲池中的条目数目非常少),不使用的条目将会超时。该值以 jiffies为单位测量。
缺省设置:600
4) /proc/sys/net/ipv4/inet_peer_gc_mintime
废物收集(GC)通过的最短间隔。这个间隔会影响到缓冲池中内存的高压力。 该值
以 jiffies为单位测量。
缺省设置:10
5) /proc/sys/net/ipv4/inet_peer_gc_maxtime
废物收集(GC)通过的最大间隔,这个间隔会影响到缓冲池中内存的低压力。 该值
以 jiffies为单位测量。
缺省设置:120
6.3 TCP Variables
1) /proc/sys/net/ipv4/tcp_syn_retries
该文件表示本机向外发起TCP SYN连接超时重传的次数,不应该高于255;该值仅仅针对外出的连接,对于进来的连接由tcp_retries1控制。
缺省设置:5
2) /proc/sys/net/ipv4/tcp_keepalive_probes
该文件表示丢弃TCP连接前,进行最大TCP保持连接侦测的次数。保持连接仅在
SO_KEEPALIVE套接字选项被打开时才被发送。
缺省设置:9(次)
3) /proc/sys/net/ipv4/tcp_keepalive_time
该文件表示从不再传送数据到向连接上发送保持连接信号之间所需的秒数。
缺省设置:7200(2小时)
4) /proc/sys/net/ipv4/tcp_keepalive_intvl
该文件表示发送TCP探测的频率,乘以tcp_keepalive_probes表示断开没有相应的TCP连接的时间。
缺省设置:75(秒)
5) /proc/sys/net/ipv4/tcp_retries1
该文件表示放弃回应一个TCP连接请求前进行重传的次数。
缺省设置:3
6) /proc/sys/net/ipv4/tcp_retries2
该文件表示放弃在已经建立通讯状态下的一个TCP数据包前进行重传的次数。
缺省设置:15
7) /proc/sys/net/ipv4/tcp_orphan_retries
在近端丢弃TCP连接之前,要进行多少次重试。默认值是 7 个,相当于 50秒–
16分钟,视 RTO 而定。如果您的系统是负载很大的web服务器,那么也许需
要降低该值,这类 sockets 可能会耗费大量的资源。另外参考
tcp_max_orphans。
8) /proc/sys/net/ipv4/tcp_fin_timeout
对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能
会断开连接或一直不结束连接或不可预料的进程死亡。默认值为 60 秒。过去在
2.2版本的内核中是 180 秒。您可以设置该值,但需要注意,如果您的机器为负
载很重的web服务器,您可能要冒内存被大量无效数据报填满的风险,
FIN-WAIT-2 sockets 的危险性低于 FIN-WAIT-1,因为它们最多只吃 1.5K
的内存,但是它们存在时间更长。另外参考 tcp_max_orphans。
缺省设置:60(秒)
9) /proc/sys/net/ipv4/tcp_max_tw_buckets
系统在同时所处理的最大timewait sockets 数目。如果超过此数的话,
time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制,纯
粹为了抵御那些简单的 DoS 攻击,千万不要人为的降低这个限制,不过,如果
网络条件需要比默认值更多,则可以提高它(或许还要增加内存)。
缺省设置:180000
10) /proc/sys/net/ipv4/tcp_tw_recyle
打开快速 TIME-WAIT sockets 回收。除非得到技术专家的建议或要求,请不要随
意修改这个值。
缺省设置:0
11) /proc/sys/net/ipv4/tcp_tw_reuse
该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。
缺省设置:0
12) /proc/sys/net/ipv4/tcp_max_orphans
系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量,那
么不属于任何进程的连接会被立即reset,并同时显示警告信息。之所以要设定这
个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要依赖这个或是人为的降
低这个限制。
缺省设置:8192
13) /proc/sys/net/ipv4/tcp_abort_on_overflow
当守护进程太忙而不能接受新的连接,就向对方发送reset消息,默认值是false。
这意味着当溢出的原因是因为一个偶然的猝发,那么连接将恢复状态。只有在你确
信守护进程真的不能完成连接请求时才打开该选项,该选项会影响客户的使用。
缺省设置:0
14) /proc/sys/net/ipv4/tcp_syncookies
该文件表示是否打开TCP同步标签(syncookie),内核必须打开了 CONFIG_SYN_COOKIES项进行编译。 同步标签(syncookie)可以防止一个套接字在有过多试图连接到达时引起过载。
缺省设置:0
15) /proc/sys/net/ipv4/tcp_stdurg
使用 TCP urg pointer 字段中的主机请求解释功能。大部份的主机都使用老旧的
BSD解释,因此如果您在 Linux 打开它,或会导致不能和它们正确沟通。
缺省设置:0
16) /proc/sys/net/ipv4/tcp_max_syn_backlog
对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。对于
超过 128Mb 内存的系统,默认值是 1024,低于 128Mb 的则为 128。如果
服务器经常出现过载,可以尝试增加这个数字。警告!假如您将此值设为大于
1024,最好修改 include/net/tcp.h 里面的 TCP_SYNQ_HSIZE,以保持
TCP_SYNQ_HSIZE*16 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如
果tcp_adv_win_scale 128Mb 32768-610000)则系统将忽略所有发送给自己
的ICMP ECHO请求或那些广播地址的请求。
缺省设置:1024
17) /proc/sys/net/ipv4/tcp_window_scaling
该文件表示设置tcp/ip会话的滑动窗口大小是否可变。参数值为布尔值,为1时表示可变,为0时表示不可变。tcp/ip通常使用的窗口最大可达到 65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力。
缺省设置:1
18) /proc/sys/net/ipv4/tcp_sack
该文件表示是否启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段);(对于广域网通信来说)这个选项应该启用,但是这会增加对 CPU 的占用。
缺省设置:1
19) /proc/sys/net/ipv4/tcp_timestamps
该文件表示是否启用以一种比超时重发更精确的方法(请参阅 RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。
缺省设置:1
20) /proc/sys/net/ipv4/tcp_fack
该文件表示是否打开FACK拥塞避免和快速重传功能。
缺省设置:1
21) /proc/sys/net/ipv4/tcp_dsack
该文件表示是否允许TCP发送“两个完全相同”的SACK。
缺省设置:1
22) /proc/sys/net/ipv4/tcp_ecn
该文件表示是否打开TCP的直接拥塞通告功能。
缺省设置:0
23) /proc/sys/net/ipv4/tcp_reordering
该文件表示TCP流中重排序的数据报最大数量。
缺省设置:3
24) /proc/sys/net/ipv4/tcp_retrans_collapse
该文件表示对于某些有bug的打印机是否提供针对其bug的兼容性。
缺省设置:1
25) /proc/sys/net/ipv4/tcp_wmem
该文件包含3个整数值,分别是:min,default,max
Min:为TCP socket预留用于发送缓冲的内存最小值。每个TCP socket都可以使用它。
Default:为TCP socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem中default的 值,一般要低于net.core.wmem中default的值。
Max:为TCP socket预留用于发送缓冲的内存最大值。该值不会影响net.core.wmem_max,今天选择参数SO_SNDBUF则不受该值影响。默认值为128K。
缺省设置:4096 16384 131072
26) /proc/sys/net/ipv4/tcp_rmem
该文件包含3个整数值,分别是:min,default,max
Min:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下TCP socket都至少会有这么多数量的内存用于接收缓冲。
Default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的 net.core.wmem中default的值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win的默认值情况下,TCP 窗口大小为65535。
Max:为TCP socket预留用于接收缓冲的内存最大值。该值不会影响 net.core.wmem中max的值,今天选择参数 SO_SNDBUF则不受该值影响。
缺省设置:4096 87380 174760
27) /proc/sys/net/ipv4/tcp_mem
该文件包含3个整数值,分别是:low,pressure,high
Low:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。
Pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。
High:允许所有tcp sockets用于排队缓冲数据报的页面量。
一般情况下这些值是在系统启动时根据系统内存数量计算得到的。
缺省设置:24576 32768 49152
28) /proc/sys/net/ipv4/tcp_app_win
该文件表示保留max(window/2^tcp_app_win, mss)数量的窗口由于应用缓冲。当为0时表示不需要缓冲。
缺省设置:31
29) /proc/sys/net/ipv4/tcp_adv_win_scale
该文件表示计算缓冲开销bytes/2^tcp_adv_win_scale(如果tcp_adv_win_scale >; 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale <= 0)。
缺省设置:2
6.4 IP Variables
1) /proc/sys/net/ipv4/ip_local_port_range
该文件表示TCP/UDP协议打开的本地端口号。
缺省设置:1024 4999
建议设置:32768 61000
2) /proc/sys/net/ipv4/ip_nonlocal_bind
该文件表示是否允许进程邦定到非本地地址。
缺省设置:0
3) /proc/sys/net/ipv4/ip_dynaddr
该参数通常用于使用拨号连接的情况,可以使系统动能够立即改变ip包的源地址为该ip地址,同时中断原有的tcp对话而用新地址重新发出一个syn请求包,开始新的tcp对话。在使用ip欺骗时,该参数可以立即改变伪装地址为新的ip地址。该文件表示是否允许动态地址,如果该值非0,表示允许;如果该值大于1,内核将通过log记录动态地址重写信息。
缺省设置:0
4) /proc/sys/net/ipv4/icmp_echo_ignore_all/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
该文件表示内核是否忽略所有的ICMP ECHO请求,或忽略广播和多播请求。
0, 响应请求
1, 忽略请求
缺省设置:0
建议设置:1
5) /proc/sys/net/ipv4/icmp_ratelimit
6) /proc/sys/net/ipv4/icmp_ratemask
7) /proc/sys/net/ipv4/icmp_ignore_bogus_error_reponses
某些路由器违背RFC1122标准,其对广播帧发送伪造的响应来应答。这种违背行
为通常会被以告警的方式记录在系统日志中。如果该选项设置为True,内核不会
记录这种警告信息。
缺省设置:0
8) /proc/sys/net/ipv4/igmp_max_memberships
该文件表示多播组中的最大成员数量。
缺省设置:20
6.5 Other Configuration
1) /proc/sys/net/ipv4/conf/*/accept_redirects
如果主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,但是该网关
在收到你的ip包时发现该ip包必须经过另外一个路由器,这时这个路由器就会给你
发一个所谓的“重定向”icmp包,告诉将ip包转发到另外一个路由器。参数值为布尔
值,1表示接收这类重定向icmp 信息,0表示忽略。在充当路由器的linux主机上缺
省值为0,在一般的linux主机上缺省值为1。建议将其改为0以消除安全性隐患。
2) /proc/sys/net/ipv4/*/accept_source_route
是否接受含有源路由信息的ip包。参数值为布尔值,1表示接受,0表示不接受。在
充当网关的linux主机上缺省值为1,在一般的linux主机上缺省值为0。从安全性角
度出发,建议关闭该功能。
3) /proc/sys/net/ipv4/*/secure_redirects
其实所谓的“安全重定向”就是只接受来自网关的“重定向”icmp包。该参数就是
用来设置“安全重定向”功能的。参数值为布尔值,1表示启用,0表示禁止,缺省值
为启用。
4) /proc/sys/net/ipv4/*/proxy_arp
设置是否对网络上的arp包进行中继。参数值为布尔值,1表示中继,0表示忽略,
缺省值为0。该参数通常只对充当路由器的linux主机有用。
七、性能优化策略
7.1 基本优化
1) 关闭后台守护进程
系统安装完后,系统会默认启动一些后台守护进程,有些进程并不是必需的;因此,关闭这些进程可以节省一部分物理内存消耗。以root身份登录系统,运行ntsysv,选中如下进程:
iptables
network
syslog
random
apmd
xinetd
vsftpd
crond
local
修改完后,重新启动系统。
如此,系统将仅仅启动选中的这些守护进程。
2) 减少终端连接数
系统默认启动6个终端,而实际上只需启动3个即可;以root身份登录系统,运行vi /etc/inittab,修改成如下:
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
如上所述,注释掉4、5、6终端。
3) 待续。。。
7.2 网络优化
1) 优化系统套接字缓冲区
net.core.rmem_max=16777216
net.core.wmem_max=16777216
2) 优化TCP接收/发送缓冲区
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
3) 优化网络设备接收队列
net.core.netdev_max_backlog=3000
4) 关闭路由相关功能
net.ipv4.conf.lo.accept_source_route=0
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.eth0.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
net.ipv4.conf.lo.accept_redirects=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.eth0.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.lo.secure_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.eth0.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.conf.lo.send_redirects=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.eth0.send_redirects=0
net.ipv4.conf.default.send_redirects=0
5) 优化TCP协议栈
打开TCP SYN cookie选项,有助于保护服务器免受SyncFlood攻击。
net.ipv4.tcp_syncookies=1
打开TIME-WAIT套接字重用功能,对于存在大量连接的Web服务器非常有效。
net.ipv4.tcp_tw_recyle=1
net.ipv4.tcp_tw_reuse=1
减少处于FIN-WAIT-2连接状态的时间,使系统可以处理更多的连接。
net.ipv4.tcp_fin_timeout=30
减少TCP KeepAlive连接侦测的时间,使系统可以处理更多的连接。
net.ipv4.tcp_keepalive_time=1800
增加TCP SYN队列长度,使系统可以处理更多的并发连接。
net.ipv4.tcp_max_syn_backlog=8192
本文档针对OOP8生产环境,具体优化策略需要根据实际情况进行调整;本文档将在以下几个方面来阐述如何针对RedHat Enterprise Linux进行性能优化。
1) Linux Proc文件系统,通过对Proc文件系统进行调整,达到性能优化的目的。
2) Linux性能诊断工具,介绍如何使用Linux自带的诊断工具进行性能诊断。
加粗斜体表示可以直接运行的命令。
下划线表示文件的内容。
二、/proc/sys/kernel/优化
1) /proc/sys/kernel/ctrl-alt-del
该文件有一个二进制值,该值控制系统在接收到ctrl+alt+delete按键组合时如何反应。这两个值分别是:
零(0)值,表示捕获ctrl+alt+delete,并将其送至 init 程序;这将允许系统可以安全地关闭和重启,就好象输入shutdown命令一样。
壹(1)值,表示不捕获ctrl+alt+delete,将执行非正常的关闭,就好象直接关闭电源一样。
缺省设置:0
建议设置:1,防止意外按下ctrl+alt+delete导致系统非正常重启。
2) proc/sys/kernel/msgmax
该文件指定了从一个进程发送到另一个进程的消息的最大长度(bytes)。进程间的消息传递是在内核的内存中进行的,不会交换到磁盘上,所以如果增加该值,则将增加操作系统所使用的内存数量。
缺省设置:8192
3) /proc/sys/kernel/msgmnb
该文件指定一个消息队列的最大长度(bytes)。
缺省设置:16384
4) /proc/sys/kernel/msgmni
该文件指定消息队列标识的最大数目,即系统范围内最大多少个消息队列。
缺省设置:16
5) /proc/sys/kernel/panic
该文件表示如果发生“内核严重错误(kernel panic)”,则内核在重新引导之前等待的时间(以秒为单位)。
零(0)秒,表示在发生内核严重错误时将禁止自动重新引导。
缺省设置:0
6) proc/sys/kernel/shmall
该文件表示在任何给定时刻,系统上可以使用的共享内存的总量(bytes)。
缺省设置:2097152
7) /proc/sys/kernel/shmmax
该文件表示内核所允许的最大共享内存段的大小(bytes)。
缺省设置:33554432
建议设置:物理内存 * 50%
实际可用最大共享内存段大小=shmmax * 98%,其中大约2%用于共享内存结构。
可以通过设置shmmax,然后执行ipcs -l来验证。
8) /proc/sys/kernel/shmmni
该文件表示用于整个系统的共享内存段的最大数目(个)。
缺省设置:4096
9) /proc/sys/kernel/threads-max
该文件表示内核所能使用的线程的最大数目。
缺省设置:2048
10) /proc/sys/kernel/sem
该文件用于控制内核信号量,信号量是System VIPC用于进程间通讯的方法。
建议设置:250 32000 100 128
第一列,表示每个信号集中的最大信号量数目。
第二列,表示系统范围内的最大信号量总数目。
第三列,表示每个信号发生时的最大系统操作数目。
第四列,表示系统范围内的最大信号集总数目。
所以,(第一列)*(第四列)=(第二列)
以上设置,可以通过执行ipcs -l来验证。
11) 待续。。。
三、/proc/sys/vm/优化
1) /proc/sys/vm/block_dump
该文件表示是否打开Block Debug模式,用于记录所有的读写及Dirty Block写回动作。
缺省设置:0,禁用Block Debug模式
2) /proc/sys/vm/dirty_background_ratio
该文件表示脏数据到达系统整体内存的百分比,此时触发pdflush进程把脏数据写回磁盘。
缺省设置:10
3) /proc/sys/vm/dirty_expire_centisecs
该文件表示如果脏数据在内存中驻留时间超过该值,pdflush进程在下一次将把这些数据写回磁盘。
缺省设置:3000(1/100秒)
4) /proc/sys/vm/dirty_ratio
该文件表示如果进程产生的脏数据到达系统整体内存的百分比,此时进程自行把脏数据写回磁盘。
缺省设置:40
5) /proc/sys/vm/dirty_writeback_centisecs
该文件表示pdflush进程周期性间隔多久把脏数据写回磁盘。
缺省设置:500(1/100秒)
6) /proc/sys/vm/vfs_cache_pressure
该文件表示内核回收用于directory和inode cache内存的倾向;缺省值100表示内核将根据pagecache和swapcache,把directory和inode cache保持在一个合理的百分比;降低该值低于100,将导致内核倾向于保留directory和inode cache;增加该值超过100,将导致内核倾向于回收directory和inode cache。
缺省设置:100
7) /proc/sys/vm/min_free_kbytes
该文件表示强制Linux VM最低保留多少空闲内存(Kbytes)。
缺省设置:724(512M物理内存)
8) /proc/sys/vm/nr_pdflush_threads
该文件表示当前正在运行的pdflush进程数量,在I/O负载高的情况下,内核会自动增加更多的pdflush进程。
缺省设置:2(只读)
9) /proc/sys/vm/overcommit_memory
该文件指定了内核针对内存分配的策略,其值可以是0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存(参照overcommit_ratio)。
缺省设置:0
10) /proc/sys/vm/overcommit_ratio
该文件表示,如果overcommit_memory=2,可以过载内存的百分比,通过以下公式来计算系统整体可用内存。
系统可分配内存=交换空间+物理内存*overcommit_ratio/100
缺省设置:50(%)
11) /proc/sys/vm/page-cluster
该文件表示在写一次到swap区的时候写入的页面数量,0表示1页,1表示2页,2表示4页。
缺省设置:3(2的3次方,8页)
12) /proc/sys/vm/swapiness
该文件表示系统进行交换行为的程度,数值(0-100)越高,越可能发生磁盘交换。
缺省设置:60
13) legacy_va_layout
该文件表示是否使用最新的32位共享内存mmap()系统调用,Linux支持的共享内存分配方式包括mmap(),Posix,System VIPC。
0, 使用最新32位mmap()系统调用。
1, 使用2.4内核提供的系统调用。
缺省设置:0
14) nr_hugepages
该文件表示系统保留的hugetlb页数。
15) hugetlb_shm_group
该文件表示允许使用hugetlb页创建System VIPC共享内存段的系统组ID。
16) 待续。。。
四、/proc/sys/fs/优化
1) /proc/sys/fs/file-max
该文件指定了可以分配的文件句柄的最大数目。如果用户得到的错误消息声明由于打开
文件数已经达到了最大值,从而他们不能打开更多文件,则可能需要增加该值。
缺省设置:4096
建议设置:65536
2) /proc/sys/fs/file-nr
该文件与 file-max 相关,它有三个值:
已分配文件句柄的数目
已使用文件句柄的数目
文件句柄的最大数目
该文件是只读的,仅用于显示信息。
3) 待续。。。
五、/proc/sys/net/core/优化
该目录下的配置文件主要用来控制内核和网络层之间的交互行为。
1) /proc/sys/net/core/message_burst
写新的警告消息所需的时间(以 1/10 秒为单位);在这个时间内系统接收到的其它警告消息会被丢弃。这用于防止某些企图用消息“淹没”系统的人所使用的拒绝服务(Denial of Service)攻击。
缺省设置:50(5秒)
2) /proc/sys/net/core/message_cost
该文件表示写每个警告消息相关的成本值。该值越大,越有可能忽略警告消息。
缺省设置:5
3) /proc/sys/net/core/netdev_max_backlog
该文件表示在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
缺省设置:300
4) /proc/sys/net/core/optmem_max
该文件表示每个套接字所允许的最大缓冲区的大小。
缺省设置:10240
5) /proc/sys/net/core/rmem_default
该文件指定了接收套接字缓冲区大小的缺省值(以字节为单位)。
缺省设置:110592
6) /proc/sys/net/core/rmem_max
该文件指定了接收套接字缓冲区大小的最大值(以字节为单位)。
缺省设置:131071
7) /proc/sys/net/core/wmem_default
该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。
缺省设置:110592
8) /proc/sys/net/core/wmem_max
该文件指定了发送套接字缓冲区大小的最大值(以字节为单位)。
缺省设置:131071
9) 待续。。。
六、/proc/sys/net/ipv4/优化
1) /proc/sys/net/ipv4/ip_forward
该文件表示是否打开IP转发。
0,禁止
1,转发
缺省设置:0
2) /proc/sys/net/ipv4/ip_default_ttl
该文件表示一个数据报的生存周期(Time To Live),即最多经过多少路由器。
缺省设置:64
增加该值会降低系统性能。
3) /proc/sys/net/ipv4/ip_no_pmtu_disc
该文件表示在全局范围内关闭路径MTU探测功能。
缺省设置:0
4) /proc/sys/net/ipv4/route/min_pmtu
该文件表示最小路径MTU的大小。
缺省设置:552
5) /proc/sys/net/ipv4/route/mtu_expires
该文件表示PMTU信息缓存多长时间(秒)。
缺省设置:600(秒)
6) /proc/sys/net/ipv4/route/min_adv_mss
该文件表示最小的MSS(Maximum Segment Size)大小,取决于第一跳的路由器MTU。
缺省设置:256(bytes)
6.1 IP Fragmentation
1) /proc/sys/net/ipv4/ipfrag_low_thresh/proc/sys/net/ipv4/ipfrag_low_thresh
两个文件分别表示用于重组IP分段的内存分配最低值和最高值,一旦达到最高内存分配值,其它分段将被丢弃,直到达到最低内存分配值。
缺省设置:196608(ipfrag_low_thresh)
262144(ipfrag_high_thresh)
2) /proc/sys/net/ipv4/ipfrag_time
该文件表示一个IP分段在内存中保留多少秒。
缺省设置:30(秒)
6.2 INET Peer Storage
1) /proc/sys/net/ipv4/inet_peer_threshold
INET对端存储器某个合适值,当超过该阀值条目将被丢弃。该阀值同样决定生存
时间以及废物收集通过的时间间隔。条目越多,存活期越低,GC 间隔越短。
缺省设置:65664
2) /proc/sys/net/ipv4/inet_peer_minttl
条目的最低存活期。在重组端必须要有足够的碎片(fragment)存活期。这个最低
存活期必须保证缓冲池容积是否少于 inet_peer_threshold。该值以 jiffies为
单位测量。
缺省设置:120
3) /proc/sys/net/ipv4/inet_peer_maxttl
条目的最大存活期。在此期限到达之后,如果缓冲池没有耗尽压力的话(例如:缓
冲池中的条目数目非常少),不使用的条目将会超时。该值以 jiffies为单位测量。
缺省设置:600
4) /proc/sys/net/ipv4/inet_peer_gc_mintime
废物收集(GC)通过的最短间隔。这个间隔会影响到缓冲池中内存的高压力。 该值
以 jiffies为单位测量。
缺省设置:10
5) /proc/sys/net/ipv4/inet_peer_gc_maxtime
废物收集(GC)通过的最大间隔,这个间隔会影响到缓冲池中内存的低压力。 该值
以 jiffies为单位测量。
缺省设置:120
6.3 TCP Variables
1) /proc/sys/net/ipv4/tcp_syn_retries
该文件表示本机向外发起TCP SYN连接超时重传的次数,不应该高于255;该值仅仅针对外出的连接,对于进来的连接由tcp_retries1控制。
缺省设置:5
2) /proc/sys/net/ipv4/tcp_keepalive_probes
该文件表示丢弃TCP连接前,进行最大TCP保持连接侦测的次数。保持连接仅在
SO_KEEPALIVE套接字选项被打开时才被发送。
缺省设置:9(次)
3) /proc/sys/net/ipv4/tcp_keepalive_time
该文件表示从不再传送数据到向连接上发送保持连接信号之间所需的秒数。
缺省设置:7200(2小时)
4) /proc/sys/net/ipv4/tcp_keepalive_intvl
该文件表示发送TCP探测的频率,乘以tcp_keepalive_probes表示断开没有相应的TCP连接的时间。
缺省设置:75(秒)
5) /proc/sys/net/ipv4/tcp_retries1
该文件表示放弃回应一个TCP连接请求前进行重传的次数。
缺省设置:3
6) /proc/sys/net/ipv4/tcp_retries2
该文件表示放弃在已经建立通讯状态下的一个TCP数据包前进行重传的次数。
缺省设置:15
7) /proc/sys/net/ipv4/tcp_orphan_retries
在近端丢弃TCP连接之前,要进行多少次重试。默认值是 7 个,相当于 50秒–
16分钟,视 RTO 而定。如果您的系统是负载很大的web服务器,那么也许需
要降低该值,这类 sockets 可能会耗费大量的资源。另外参考
tcp_max_orphans。
8) /proc/sys/net/ipv4/tcp_fin_timeout
对于本端断开的socket连接,TCP保持在FIN-WAIT-2状态的时间。对方可能
会断开连接或一直不结束连接或不可预料的进程死亡。默认值为 60 秒。过去在
2.2版本的内核中是 180 秒。您可以设置该值,但需要注意,如果您的机器为负
载很重的web服务器,您可能要冒内存被大量无效数据报填满的风险,
FIN-WAIT-2 sockets 的危险性低于 FIN-WAIT-1,因为它们最多只吃 1.5K
的内存,但是它们存在时间更长。另外参考 tcp_max_orphans。
缺省设置:60(秒)
9) /proc/sys/net/ipv4/tcp_max_tw_buckets
系统在同时所处理的最大timewait sockets 数目。如果超过此数的话,
time-wait socket 会被立即砍除并且显示警告信息。之所以要设定这个限制,纯
粹为了抵御那些简单的 DoS 攻击,千万不要人为的降低这个限制,不过,如果
网络条件需要比默认值更多,则可以提高它(或许还要增加内存)。
缺省设置:180000
10) /proc/sys/net/ipv4/tcp_tw_recyle
打开快速 TIME-WAIT sockets 回收。除非得到技术专家的建议或要求,请不要随
意修改这个值。
缺省设置:0
11) /proc/sys/net/ipv4/tcp_tw_reuse
该文件表示是否允许重新应用处于TIME-WAIT状态的socket用于新的TCP连接。
缺省设置:0
12) /proc/sys/net/ipv4/tcp_max_orphans
系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量,那
么不属于任何进程的连接会被立即reset,并同时显示警告信息。之所以要设定这
个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要依赖这个或是人为的降
低这个限制。
缺省设置:8192
13) /proc/sys/net/ipv4/tcp_abort_on_overflow
当守护进程太忙而不能接受新的连接,就向对方发送reset消息,默认值是false。
这意味着当溢出的原因是因为一个偶然的猝发,那么连接将恢复状态。只有在你确
信守护进程真的不能完成连接请求时才打开该选项,该选项会影响客户的使用。
缺省设置:0
14) /proc/sys/net/ipv4/tcp_syncookies
该文件表示是否打开TCP同步标签(syncookie),内核必须打开了 CONFIG_SYN_COOKIES项进行编译。 同步标签(syncookie)可以防止一个套接字在有过多试图连接到达时引起过载。
缺省设置:0
15) /proc/sys/net/ipv4/tcp_stdurg
使用 TCP urg pointer 字段中的主机请求解释功能。大部份的主机都使用老旧的
BSD解释,因此如果您在 Linux 打开它,或会导致不能和它们正确沟通。
缺省设置:0
16) /proc/sys/net/ipv4/tcp_max_syn_backlog
对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。对于
超过 128Mb 内存的系统,默认值是 1024,低于 128Mb 的则为 128。如果
服务器经常出现过载,可以尝试增加这个数字。警告!假如您将此值设为大于
1024,最好修改 include/net/tcp.h 里面的 TCP_SYNQ_HSIZE,以保持
TCP_SYNQ_HSIZE*16 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如
果tcp_adv_win_scale 128Mb 32768-610000)则系统将忽略所有发送给自己
的ICMP ECHO请求或那些广播地址的请求。
缺省设置:1024
17) /proc/sys/net/ipv4/tcp_window_scaling
该文件表示设置tcp/ip会话的滑动窗口大小是否可变。参数值为布尔值,为1时表示可变,为0时表示不可变。tcp/ip通常使用的窗口最大可达到 65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力。
缺省设置:1
18) /proc/sys/net/ipv4/tcp_sack
该文件表示是否启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段);(对于广域网通信来说)这个选项应该启用,但是这会增加对 CPU 的占用。
缺省设置:1
19) /proc/sys/net/ipv4/tcp_timestamps
该文件表示是否启用以一种比超时重发更精确的方法(请参阅 RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项。
缺省设置:1
20) /proc/sys/net/ipv4/tcp_fack
该文件表示是否打开FACK拥塞避免和快速重传功能。
缺省设置:1
21) /proc/sys/net/ipv4/tcp_dsack
该文件表示是否允许TCP发送“两个完全相同”的SACK。
缺省设置:1
22) /proc/sys/net/ipv4/tcp_ecn
该文件表示是否打开TCP的直接拥塞通告功能。
缺省设置:0
23) /proc/sys/net/ipv4/tcp_reordering
该文件表示TCP流中重排序的数据报最大数量。
缺省设置:3
24) /proc/sys/net/ipv4/tcp_retrans_collapse
该文件表示对于某些有bug的打印机是否提供针对其bug的兼容性。
缺省设置:1
25) /proc/sys/net/ipv4/tcp_wmem
该文件包含3个整数值,分别是:min,default,max
Min:为TCP socket预留用于发送缓冲的内存最小值。每个TCP socket都可以使用它。
Default:为TCP socket预留用于发送缓冲的内存数量,默认情况下该值会影响其它协议使用的net.core.wmem中default的 值,一般要低于net.core.wmem中default的值。
Max:为TCP socket预留用于发送缓冲的内存最大值。该值不会影响net.core.wmem_max,今天选择参数SO_SNDBUF则不受该值影响。默认值为128K。
缺省设置:4096 16384 131072
26) /proc/sys/net/ipv4/tcp_rmem
该文件包含3个整数值,分别是:min,default,max
Min:为TCP socket预留用于接收缓冲的内存数量,即使在内存出现紧张情况下TCP socket都至少会有这么多数量的内存用于接收缓冲。
Default:为TCP socket预留用于接收缓冲的内存数量,默认情况下该值影响其它协议使用的 net.core.wmem中default的值。该值决定了在tcp_adv_win_scale、tcp_app_win和tcp_app_win的默认值情况下,TCP 窗口大小为65535。
Max:为TCP socket预留用于接收缓冲的内存最大值。该值不会影响 net.core.wmem中max的值,今天选择参数 SO_SNDBUF则不受该值影响。
缺省设置:4096 87380 174760
27) /proc/sys/net/ipv4/tcp_mem
该文件包含3个整数值,分别是:low,pressure,high
Low:当TCP使用了低于该值的内存页面数时,TCP不会考虑释放内存。
Pressure:当TCP使用了超过该值的内存页面数量时,TCP试图稳定其内存使用,进入pressure模式,当内存消耗低于low值时则退出pressure状态。
High:允许所有tcp sockets用于排队缓冲数据报的页面量。
一般情况下这些值是在系统启动时根据系统内存数量计算得到的。
缺省设置:24576 32768 49152
28) /proc/sys/net/ipv4/tcp_app_win
该文件表示保留max(window/2^tcp_app_win, mss)数量的窗口由于应用缓冲。当为0时表示不需要缓冲。
缺省设置:31
29) /proc/sys/net/ipv4/tcp_adv_win_scale
该文件表示计算缓冲开销bytes/2^tcp_adv_win_scale(如果tcp_adv_win_scale >; 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale <= 0)。
缺省设置:2
6.4 IP Variables
1) /proc/sys/net/ipv4/ip_local_port_range
该文件表示TCP/UDP协议打开的本地端口号。
缺省设置:1024 4999
建议设置:32768 61000
2) /proc/sys/net/ipv4/ip_nonlocal_bind
该文件表示是否允许进程邦定到非本地地址。
缺省设置:0
3) /proc/sys/net/ipv4/ip_dynaddr
该参数通常用于使用拨号连接的情况,可以使系统动能够立即改变ip包的源地址为该ip地址,同时中断原有的tcp对话而用新地址重新发出一个syn请求包,开始新的tcp对话。在使用ip欺骗时,该参数可以立即改变伪装地址为新的ip地址。该文件表示是否允许动态地址,如果该值非0,表示允许;如果该值大于1,内核将通过log记录动态地址重写信息。
缺省设置:0
4) /proc/sys/net/ipv4/icmp_echo_ignore_all/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
该文件表示内核是否忽略所有的ICMP ECHO请求,或忽略广播和多播请求。
0, 响应请求
1, 忽略请求
缺省设置:0
建议设置:1
5) /proc/sys/net/ipv4/icmp_ratelimit
6) /proc/sys/net/ipv4/icmp_ratemask
7) /proc/sys/net/ipv4/icmp_ignore_bogus_error_reponses
某些路由器违背RFC1122标准,其对广播帧发送伪造的响应来应答。这种违背行
为通常会被以告警的方式记录在系统日志中。如果该选项设置为True,内核不会
记录这种警告信息。
缺省设置:0
8) /proc/sys/net/ipv4/igmp_max_memberships
该文件表示多播组中的最大成员数量。
缺省设置:20
6.5 Other Configuration
1) /proc/sys/net/ipv4/conf/*/accept_redirects
如果主机所在的网段中有两个路由器,你将其中一个设置成了缺省网关,但是该网关
在收到你的ip包时发现该ip包必须经过另外一个路由器,这时这个路由器就会给你
发一个所谓的“重定向”icmp包,告诉将ip包转发到另外一个路由器。参数值为布尔
值,1表示接收这类重定向icmp 信息,0表示忽略。在充当路由器的linux主机上缺
省值为0,在一般的linux主机上缺省值为1。建议将其改为0以消除安全性隐患。
2) /proc/sys/net/ipv4/*/accept_source_route
是否接受含有源路由信息的ip包。参数值为布尔值,1表示接受,0表示不接受。在
充当网关的linux主机上缺省值为1,在一般的linux主机上缺省值为0。从安全性角
度出发,建议关闭该功能。
3) /proc/sys/net/ipv4/*/secure_redirects
其实所谓的“安全重定向”就是只接受来自网关的“重定向”icmp包。该参数就是
用来设置“安全重定向”功能的。参数值为布尔值,1表示启用,0表示禁止,缺省值
为启用。
4) /proc/sys/net/ipv4/*/proxy_arp
设置是否对网络上的arp包进行中继。参数值为布尔值,1表示中继,0表示忽略,
缺省值为0。该参数通常只对充当路由器的linux主机有用。
七、性能优化策略
7.1 基本优化
1) 关闭后台守护进程
系统安装完后,系统会默认启动一些后台守护进程,有些进程并不是必需的;因此,关闭这些进程可以节省一部分物理内存消耗。以root身份登录系统,运行ntsysv,选中如下进程:
iptables
network
syslog
random
apmd
xinetd
vsftpd
crond
local
修改完后,重新启动系统。
如此,系统将仅仅启动选中的这些守护进程。
2) 减少终端连接数
系统默认启动6个终端,而实际上只需启动3个即可;以root身份登录系统,运行vi /etc/inittab,修改成如下:
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6
如上所述,注释掉4、5、6终端。
3) 待续。。。
7.2 网络优化
1) 优化系统套接字缓冲区
net.core.rmem_max=16777216
net.core.wmem_max=16777216
2) 优化TCP接收/发送缓冲区
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
3) 优化网络设备接收队列
net.core.netdev_max_backlog=3000
4) 关闭路由相关功能
net.ipv4.conf.lo.accept_source_route=0
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.eth0.accept_source_route=0
net.ipv4.conf.default.accept_source_route=0
net.ipv4.conf.lo.accept_redirects=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.eth0.accept_redirects=0
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.lo.secure_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.eth0.secure_redirects=0
net.ipv4.conf.default.secure_redirects=0
net.ipv4.conf.lo.send_redirects=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.eth0.send_redirects=0
net.ipv4.conf.default.send_redirects=0
5) 优化TCP协议栈
打开TCP SYN cookie选项,有助于保护服务器免受SyncFlood攻击。
net.ipv4.tcp_syncookies=1
打开TIME-WAIT套接字重用功能,对于存在大量连接的Web服务器非常有效。
net.ipv4.tcp_tw_recyle=1
net.ipv4.tcp_tw_reuse=1
减少处于FIN-WAIT-2连接状态的时间,使系统可以处理更多的连接。
net.ipv4.tcp_fin_timeout=30
减少TCP KeepAlive连接侦测的时间,使系统可以处理更多的连接。
net.ipv4.tcp_keepalive_time=1800
增加TCP SYN队列长度,使系统可以处理更多的并发连接。
net.ipv4.tcp_max_syn_backlog=8192





