Perfil de zzzMagic 's Forest , ...FotosBlogListasMás ![]() | Ayuda |
|
26 noviembre NTP配置NTP客户端
> service ntpd stop > ntpdate {服务器IP} >crond –e 每隔10分钟同步一次时间
================
NTP服务端 ntp-4.2.2p1-9.el5.centos.2.i386
> vi /etc/ntp.conf restrict 10.0.10.0 mask 255.255.255.0 nomodify notrap #允许client端 >service ntpd restart
~~~~~~~~~~~~~~~~
一些可以用的NTP服务器 cn.pool.ntp.org 133.100.11.8 prefer Memcachedwget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz 有可能还要libevent-devel的包 wget http://memcached.googlecode.com/files/memcached-1.4.3.tar.gz
memcached有用到libevent包,所以要先装下。 编译都没什么花头, ./configure && make && make install 默认是安装到/usr/local/bin下面
自己做个启动脚本
start() { stop() {
启动脚本里面如果要调试信息就加一个 –vv 的参数。
-p 端口11211 -m 使用的缓存大小 -d 作为后台运行 -u 指定用户,由于不能用root启动 所以要adduser -P 记录下pid,给stop用 -vv 详细信息显示 基本的 service 脚本#!/bin/sh RETVAL=0 start() { stop() { restart() { restart|reload) *) exit $RETVAL
这是一个最基本的service脚本 只要把要做的事情放到start和stop函数里面去就OK了。 更完善一点么就把路径什么的做成变量,做一些判断。 Java Installer Builder这2天做掉一个大项目,忙的这是~ 今天似乎没什么后续的任务 大概比计划完成的提早了吧 呵呵 领导们在开会,那就抓紧时间写点小结吧~ 先从小的项目开始
Java Installer Builder
打包程序,还蛮好玩的~ 就是制作安装程序的程序,我们以前装的游戏啊、程序啊 原来都是这么打包出来的,蛮好玩的~呵呵
用到的工具,Install4j,破解版下载地址 这个东东破解竟然还用到java代码,crack目录下面有个keygen.class 拷到安装路径 运行java keygen 就会有注册码出来了 我用的是这个 L-FLN#77002-1sx2e2c1spj1zb#325
………………………………………………
其实只要跟着一路next就ok了,不过在实际操作过程中还是有碰到些问题。
第一页 General Settings 这个是安装程序的名字,起的体面一点比较好。全小写的难看 Java版本,如果后面选择打包里面自带Java,就无所谓了。 安装过程用的Language,第一个是默认,下面可以增加多选,记得不要把默认的选进去 每个语言的文档其实都在${install4j}\resource\messages路径下面 可以把里面的install4j替换成想要的文字 打包好的安装程序放置的路径,下面还有默认生成文件名的格式、压缩方式、timestamp等 项目变量的设置 ~应该一般用不到吧。。
第二页 Files 要打包的文件夹,Add Files 然后选上整个目录 预览一下 readonly~ 指定要打包进去的文件 当然全选的话就不用改了
第三页 Launchers
New Launcher-> 我是用Generated Launcher的 执行安装的方式,其中有可以把这个程序做成Service的选项 输入执行程序的名字 这里就可以用一般文件名的格式了~还有设置执行的目录等。 下面有个Advanced Options,有一些细节的东西可以设置, 比如安装日志、服务启动的方式、Dependency等
icon 选择图标 要准备2个,16*16的和32*32的。大小不符合它会用自带那个,狠难看~
Java invocation 这个是最麻烦的地方了 先选Class Path,把根目录选进去。 然后记得把Main class要用到的Jar文件指定添加进去,指定目录的话是不会自动搜索的~ 然后选程序的Main class 下面可以填它的Parameters 下面有个Advanced Options,如果有的话 记得还要把Native Library Directory选进去
splash screen 启动程序时用的画面,就是那种刚启动时,屏幕中间会出来一段版权所有的这种半透明淡入淡出的图片
第四页 Installer 这个是安装过程的每个页面设置。 看是很多,其实仔细研究了一下基本没什么地方可以改动的,直接next好了 Custom Code,JAR文件的自定义代码 Application ID,Update用的 GUI 的一些选项 比如窗口大小、标题栏之类的 下面竟然有个 add install4j watermark to installer screens 的多选项。。记得去掉~ Installer Icon也可以自定义 Advanced里面有用console方式安装的后门参数等设置
第五页 Media 选For Windows还是For Mac、Unix/Linux 的 或者下面的archive 可以打包安装的那种,不用图形化。 安装路径 先勾上custom installation base directory的选项 后面填入C:\program File或者D:\之类的 上面填后续的程序目录名 中间没有什么 一直到第6部分 Bundled JRE 可以把JRE的包打在安装程序里,省的客户端没有安装环境什么的还要自己去找 先下载 然后就可以在选项里面选择了。 最后有个全面自定义的地方 几乎什么都可以再改一下。
第六页 Bulid 好,OK了 在这里Start就可以了。要看过程么可以把Enable extra verbose output勾出来看一看 Test Build貌似没什么用 还特费时间 不做也罢。 20 noviembre 快进生命。时间在快进。
最近哈忙,每天一个项目接着一个项目。而且每个项目似乎都很急 每个项目都马上要上马。 我也就尽力而为了。
突然发现 碰到一个下不去的障碍 再怎么折腾、绞尽脑汁,试图的东西还总是浮于表面。 而到外面走一走,吃点东西 擦把脸 休息一下,然后整理一下曾经走过的思路 忘记做过的一切 寻找一个新的起点重新来过~ 问题似乎会变得很容易 就迎刃而解了。
另外又发现 越是到下班的时间 项目解决的几率就越低。 以前我记得不是这样的 自己总是会到最后准点之前的几十分钟把手上的事情都解决了 然后喘口气 悠闲地等待着下班。
说明什么呢,也许现在的所做 确实有些超出自己所能掌控的范围了。 不过1900最后的那个决定 我是绝对不会做的。超过那88个键就是不能承受之重了吗?
连着2天,下班收尾的项目都解决不了~ 非常无奈地做到7点才离开公司。 到了家里 休息足了 再奋起精神登上服务器 发现竟然很顺利地就解决了
看来 加班 是没什么意义的~我如此认为。。 哈哈
公司的项目都在外网服务器上 这倒是件很方便的事情。。随时随地都能上去折腾 只是前几天还有空在每个项目做掉之后写一个总结,这几天一个接一个 连回头看一眼的机会也没有了 希望过几天不要忘记。这些笔记 是我心中的财富。
*************************
前面刚弄完项目,在看女子9球世锦赛。突然发现一个叫潘晓婷的中国女孩子打的哈好呀 看全了整场,有潜力啊~~还戴了一副很夸张的耳环 太赞了。
。^^ ^^^ ^^^ ^^^ ^^^
下班的时候漫步在常熟路上 似乎已经入了深夜。 上班 做项目 下班 做项目 睡觉 时间似乎不要钱似地在我面前一晃就过去了
现实么? 快进的生命 快进的收入 少去了本该属于自己的思维 属于自己的生活 不过竟然还觉得很充实呢 或许是 喜欢这份事业么? 喜欢那四四方方服务器里的一切么? 喜欢解决了问题之后那一刹那的成就感和轻松的喜悦么?
尽全力燃烧自己 或许就是喜欢着这种感觉吧
总之 翻天覆地的生活 竟然一点都没有觉得不适 没有腻味之前 就这么随他快进吧 反正今年的目标也差不多都完成了。让自己全神贯注的工作 也不错。
>> x 64 18 noviembre Apache停止和重启(转)本文档叙述了在类Unix系统上如何停止和重启Apache 。 Windows NT/2000/XP/2003的用户请参见以服务方式运行Apache ,Windows 9x/ME用户则参见在控制台中运行Apache 。
简介为了停止或者重新启动Apache ,你必须向正在运行的 你可以用下面这样的命令来向父进程发送信号:
第二种方法是使用下面将要描述的 当你向
你可以修改这些示例以适应你的
立即停止
发送
优雅重启
重启代码的设计能够确保MPM进程控制指令的正常运作,也就是在重启过程中确保有适当数量的进程和线程以响应客户端的请求。它是这样 使用
目前,日志滚动脚本还无法使用 如果Apache重启时发现配置文件有误,那么父进程将不会重启,而是报错并退出。在优雅重启的情况下,它将在处理中的子进程存在的情况下维持它的存在(就是那些被要求在处理完它们的请求后"优雅退出"的子进程)。如果你要重启服务器,这将导致一些问题:它将不能绑定到它的监听端口。在执行重启之前,你可以用
立即重启
向父进程发送 使用 如果你重启时配置文件有误,那么父进程将不会重启,而是报错并退出。参见上文中避免的方法。
优雅停止
在"优雅"状态下,
必须注意确保诸如 你还必须防止潜在的竞争条件,比如使用
附录:信号和竞争条件在Apache 1.2b9 之前,有很多关于重启和死亡信号的竞争条件。关于竞争条件的一个简单描述是:一个时间敏感的问题,如果一些事情在不适当的时间或以不恰当的顺序发生,它将作出你不期望的反应;如果同样的事情在恰当的时间发生,则不会出现异常。凭借那些拥有"正确"特性设置的体系结构,我们尽量避免了它们的出现。但值得注意的是,仍然有一些竞争条件存在于这样的体系结构中。 使用物理磁盘的 当每个子进程在一个HTTP的持续连接(KeepAlive)中涉及到第二个并发的请求时,所有的结构都会或多或少存在竞争状态的问题。它将在读取了请求而没有读取任何请求头之后立刻退出。这个修复对于1.2来说来得太晚了。但因为持续连接的客户端已经考虑到网络延时和服务器超时会造成类似的情况,所以理论上说,这不是一个太大的问题。而实际上似乎也没有任何影响:在一个测试案例中服务器在一秒之内被重启了20次,而客户端却成功的浏览了网站,而且没有任何破损的图片或空文档。 16 noviembre evasive limitipconn bandwidth 模块 (apache安全性,转)
mod_evasive防DDoS攻击 为了防止Web服务器被DDoS攻击,我们需要安装mod_evasive这个防DDoS的模块 mod_evasive 1.10.x防DDoS模块的下载与安装 解压后进入解压目录,执行 编译完成后,/home/apache/modules下会生成一个mod_evasive20.so文件 然后kate /home/apache/conf/httpd.conf #启用mod_evasive for Apache 2.x防DDoS模块 <IfModule mod_evasive20.c>
mod_limitipconn限制Apache的并发连接数 mod_limitipconn可以控制每个IP地址同时连接服务器某一个目录的并发连接数,是一个非常有用的模块,其官方网页是http: //dominia.org/djao/limitipconn.html,最新版本为for Apache 1.3.7的0.04,并且还有支持Apache 2.x的模块下载,由于本人使用Apache 1.3.7版本,所以请使用2.x版本Apache的朋友到其官方网站察看具体的使用方法。 mod_limitipconn for Apache 1.3x提供三种安装方式,分别是tar包、rpm安装文件和rpm源文件,由于rpm包只能用在 RedHat 7.x 版本,并且不支持检测代理服务器,所以我们一般都使用tar包的安装方式。 以管理员方式登陆服务器,然后在服务器上运行 wget http://dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz 将mod_limitipconn的tar包下载到服务器,然后按照再运行tar zxvf mod_limitipconn-0.04.tar.gz将tar包解压缩,会在当前目录下生成mod_limitipconn-0.04目录,然后cd mod_limitipconn-0.04进入此目录,下一步就是使用apxs将目录中的mod_limitipconn.c编译。这时,我们需要确定自己的Apache安装在那个目录,并且找到apxs命令放在哪里。 通过命令whereis apxs,我们可以确定apxs命令的路径,如我的apxs命令所在为/usr/sbin/apxs,则输入/usr/sbin/apxs -c -i -a mod_limitipconn.c对mod_limitipconn.c进行编译,此命令会自动在你Apache的配置文件httpd.conf中加入需要的信息,并且将生成的mod_limitipconn.so模块拷贝到Apache的模块目录。不过为了确认此命令是否正常运作,请首先检查自己的 Apache模块目录(我的是/usr/lib/apache),看内部是否含有mod_limitipconn.so文件,没有的话请将 mod_limitipconn-0.04目录中生成的文件拷贝到此处。 刚才命令自动生成的httpd.conf可能有些错误,在我的系统中,它将LoadModule limitipconn_module modules/mod_limitipconn.so放在了 <IfDefine HAVE_PYTHON> <IfDefine HAVE_PYTHON> mod_limitipconn可以对全局和虚拟主机进行不同的限制,其语法结构都是 <IfModule mod_limitipconn.c>
最后,只要重新启动Apache服务,并发连接数的限制就可以生效。
mod_bandwidth控制Apache的带宽 Apache 1.3.7实际上带有mod_bandwidth支持,只是没有此模块的so文件,我们所做的就是下载mod_bandwidth的源文件进行编译,并对mod_bandwidth进行相应的设置。 在下载之前,请先确认自己的Apache配置文件httpd.conf中是否含有 <IfDefine HAVE_BANDWIDTH>
<IfDefine HAVE_BANDWIDTH>
LoadModule bandwidth_module
确认后,请输入 wget ftp://ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c 将源文件下载到服务器,然后请使用apxs对其进行编译,编译方法和mod_limitipconn的基本相同,如我输入/usr/sbin/apxs -c mod_bandwidth.c -o /usr/lib/apache(Apache的模块目录),编译程序会自动将编译成功的mod_bandwidth.so文件放到Apache的模块目录,您也可以自己确认一下,若是不正常,拷贝过去即可。
mod_bandwidth运行时需要一些特定的目录,按照默认情况,请运行以下命令创建并更改目录的权限: mkdir /tmp/apachebw
<IfModule mod_bandwidth.c>
<Directory /home/www/thinkjam/download/soft>
mod_bandwidth还有许多其它有用的参数,如在中间加上MaxConnection 120则可以限制某个目录的最多连接数,当超过指定连接数时,拒绝新的连接,此参数与mod_limitipconn模块结合可以控制某个目录的最多连接人数。 其它的参数请朋友们到其官方网站 http://www.cohprog.com/v3/bandwidth/doc-en.html 察看相关的文档。 Apache的功能确实强大,很多功能都可以通过添加模块来实现,在 http://modules.apache.org/ 可以找到更多的模块,我们也可以编写自己的模块来实现相应的功能。 15 noviembre 工作二周 BOSS对于创业型公司的威力终于能上网了,哈哈。 上班比想象中的有趣,每天都有明确需要完成的目标,一个个课题排列在面前等待着去被解决。 从Mysql到Apache,前端网络、后端数据库、防攻击 似乎一应俱全~ 怎么看都觉得是一个实验大课堂,能学到的东西真是太多了。 相比上一份工作到后期寥寥几件值得一提的鸟事相比 这里的工作内容明显充实而有趣的很多。
相处的朋友越来越多,似乎大家都能方便的融洽到一处。我想 这应该是这里老总的功劳吧。 上周请我们去看了他觉得很赞的《This is it.》这个礼拜又在开会的时候说了令我佩服的话。 老总似乎还是那么一如既往地那么帅。
几位领导也很有特色,尤其是市场部的领导,令人眼前一亮。 老总的眼光真的蛮独到的,已经开始提拔80后做经理一职了。
创业型的小公司 老总总能在恰当的时机出现在一个合适的地方。 管理的更到位 思路更明确。 老总就是老总,那绝对不是中层管理人员所能企及的高度。 所以说 这个应该是所谓的私营企业思路活跃、灵活能动的理由吧。现在有些了解了。 扁平化的管理,有能力领导者的直接参与 这些应该是小公司充满活力的根本原因。我是如此认为的。
那是不是说 一个小的公司 只要人才出类拔萃 分配各司其职,一样可以产出更大的效益。规模不能说明一切呢? 这个还是有待考量的,不论是什么的发展,在初期 劳动力的多寡总归还是决定产出的根本因素。 而一个好的领导者,他应该有明确的自知力 了解到自己所能掌控的团队人数的极限值。 我在想 正好达到这么一个临界值的团体,或许就是这个团队的黄金时期。
突破这个临界值继续扩大下去的公司,那就完全是另一套管理的方式了,需要完整彻底的转变, 何时突破、如何转变,这又是一门高深值得研究的课题了,此乃后话。
2个礼拜了。这个公司还是很有趣的,不管是人也好、做的事情也好,都很合我的口味 就是远了点,现在搬到了常熟路,路上要花掉1个小时15分钟的路程,这是仅有的2个缺点之一。 另一个就是上班几乎一直看着电脑屏幕~一不注意就到了下班时间,还是要注意用眼啊。
明天写点公司里面的轶事吧。 13 noviembre 单服务器多Mysql服务配置之前弄完了主从数据库的配置,考虑到每一台主服务器要一台从服务器好像有点夸张 于是接着准备在一台从服务器上备份多台服务器的工作。
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Mysql确实提供了这样的命令 mysqld_multi
~ ~ ~ ~ ~
不过执行这个脚本的时候会调用几个其他mysql的脚本,所以先要把mysql/bin路径做到PATH变量里面
~ ~ ~ ~ ~
接着就是最重要的my.cnf配置,出错了很久,基本就是这里面配置的不对。 我把现在配好的配置贴在这里~
multi脚本是看my.cnf里面的[mysqldX] 下面的配置,所以这个配置名一定要改成相应。
加粗的几个文档路径是一定要配的,其余的比如relay-log之类的倒不是必要。而且要给予相应的权限, 这个配置已经做好了slave的从数据库命令,不过change master命令还是一定要登上去做的
接着初始化数据库,直接拉一个过来也可以。反正就和之前没有什么区别了。
好了,把脚本起一下
接着登陆
这里有一个问题,如果-h参数用localhost的话是登陆到3306端口的,即使是-P指定了也不行 这点现在也没有搞懂 要注意的是现在登陆的是root@192.168.2.2的账号 和root@localhost账号权限是有区别的噢
登上去之后就和之前主从服务器一样操作了,结果就是一台服务器上起了多个mysql服务了咯。
~ ~ ~ ~ 最后我们把几个服务都做到启动项里去 # vi /etc/rc.local
OK了。
9 11 noviembre Apache性能优化技巧
升级 Apache 到最新版本,新版本往往包含性能提升和安全更新。 在 httpd.conf 中设置 "HostNameLookups off" 能避免针对每个访问者的 DNS 域名的反向查询。 对于繁忙的网站,在 httpd.conf 中设置 "MaxClients 230" 或者更高。这项设置让更多的 httpd 进程同时响应请求,并避免了处理器排队的情况发生。 采用另外一台服务器处理图片文件。 缺保您的 Web 页面和 CGI 页面采用了浏览器缓冲技术。具体的文章可以参考本站:采用 mod_gzip 加速 Zope 和 Apache 保持您的 Apache 苗条,编译那些仅仅需要的模块,在编译之前,修改 src/Configuration 文件,在那些不需要的模块之前用 # 号注释掉。 如果不需要流量日志,那么把 httpd.conf 中的 TransferLog 指向到 /dev/null/ 除非你确定使用 .htaccess 文件来控制一些目录的权限,否则设置 "AllowOverride None" ,这样就免去 Apache 在每个目录搜索 .htaccess 文件的劳役之苦。 不要让不需要的后台进程运行。 千万不要把页面或者日志文件写到网络磁盘上,例如 NFS。 不要让 Apache (httpd) 运行于 inetd 模式。 不要让 X Windows 运行在你的 Web 服务器上,用 Ctrl-Alt-Backspace 关闭 X 。 避免使用 SSI tag。 在 CGI 脚本中: 文件 I/O:打开的文件数目越少越好。 在 Web 服务器上的图片越少越好,保证每个图片都经由图片压缩器运行。 对你的网站做压力测试,建议采用 Apache 自带的 ab 命令来测试。 为了最好的性能,最好把网线拔掉,这样你的 Web 服务器就十分安全,而且负载马上降为 0, Apache优化管理(另一篇,还是有些区别,转)
Apache是一个历史悠久并且功能十分强大的WEB服务器,但其丰富的功能对于一个新手来说往往不知道从何下手。我个人感觉Apache的设计充分体现了模块化设计的优势,通过在动态模块加载(DSO)模式下的安装,任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。安装的过程可以从简单的静态html服务开始,一个模块一个模块的学习使用。从单纯的HTML静态服务(core),到复杂的动态页面服务(core + php, core + resin, core + php + mod_gzip, core + resin + mod_expire)。 本文主要从简化安装==>性能调优==>维护方便的角度,介绍了WEB服务的规划、HTTPD安装/应用模块配置、升级/维护等过程。让Apache和PHP,Resin等应用模块的独立升级,完全互不影响。
Apache主要是一个内存消耗型的服务应用,我个人总结的经验公式: 为什么会有一个apache_max_process_with_good_perfermance和apache_max_process呢?原因是在低负载下系统可以使用更多的内存用于文件系统的缓存,从而进一步提高单个请求的响应速度。在高负载下,系统的单个请求响应速度会慢不少,而超过 apache_max_process,系统会因为开始使用硬盘做虚拟内存交换空间而导致系统效率急剧下降。此外,同样的服务:2G内存的机器的 apache_max_process一般只设置到1G内存的1.7倍,因为Apache本身会因为进程过多导致性能下降。
以上估算都是按小文件服务估算的(一个请求一般大小在20k以下)。对于文件下载类型站点,可能还会受其他因素:比如带宽等的影响。
服务器个数的硬上限HARD_SERVER_LIMIT的修改:
解释:
Apache的编译:以下通用的编译选项能满足以后任意模块的安装
解释: --shared-module=max:使用动态加载方式载入子模块会带来5%的性能下降,但和带来的配置方便相比更本不算什么:比如模块升级方便,系统升级风险降低,安装过程标准化等 --enable-module=most:用most可以将一些不常用的module编译进来,比如后面讲到的mod_expire是就不在 apache的缺省常用模块中
但结果会发现,这样编译对服务性能只能有微小的提高(5%左右),但却失去了以后系统升级和模块升级的灵活性,无论是模块还是Apache本身升级都必须把Apache和PHP的SOURCE加在一起重新编译。 apache的缺省配置文件一般比较大:可以使用去掉注释的方法精简一下:然后再进入具体的培植过程能让你更快的定制出你所需要的。
需要修改的通用项目有以下几个:
应用模块和工具的安装配置: 由于使用模块动态加载的模式,所以可以方便的通过简单的配置调整来把Apache定制成你需要的:最好把不常用模块全部清除(无论处于安全还是效率)。 一般说来,可以不需要的模块包括:
最好保留的有:
可用可不用的有:
常用的模块:
建议将所有MODULE的配置都放到相应模块的配置内部:<IfModule some_module.c>some_module config </IfModule>
日志的轮循:cronolog的安装和设置 cronolog可以非常整齐的将日志按天轮循存储 缺省编译安装到/usr/local/bin/下,只需要将配置改成:
日志将按天截断并存放在以星期为目录名的目录下:比如:log/1是周一,log/5是周五, log/0是周日
升级维护: 由于使用动态模块加载方式(DSO模式)安装Apache,Apache的HTTPD核心服务和应用模块以及应用模块之间都变的非常灵活,建议将所有独立模块的配置都放在
里,这样配置非常容易通过屏蔽某个模块来进行功能调整:比如:
安装和维护过程:
系统管理员:Apache的最简化安装
应用管理员:应用模块定制
应用例子:
例子:Apache和PHP模块的独立升级。 如果Apache是按照以下方式安装:
PHP是按照以下方式安装:
以后单独升级Apache的时候,仍然是:
单独升级php时,仍然是:
基于反相代理的WEB加速:
小提示: Apache安装后,缺省根目录下没有但很有用的2个文件:
apache2配置优化以及性能测试小结(貌似还算基础的优化,转)一、优化目的: 公司中现有多个apache平台,其中网元管理系统、升级和注册授权系统、离线浏览系统和应用组所开发的系统都是运行在专用的服务器中,他们都是以业务为主的系统,所拥有的硬件资源比较多,可以着重优化apache的运行速度,以适当的资源换取更高的运行速度。 但是设备中运行的各个配置程序,他们是以性能为主的系统,所运行的环境就要相对恶劣,硬件资源限制非常多,不能供web程序随意使用,他们的优化方向应该是保证运行速度的基础上尽力压低资源消耗。 受限于此,很多外挂式加速程序都无法使用了,比如memcache、eaccelerator等,使用这些工具的前提就是内存足够大,或者资源足够多,通常是专用的apache服务器上才会用到,也就是我们的第一类系统中才可以使用的,在一个嵌入系统中使用其实是得不尝失的。下面将着重研究两种情况都使用的优化方法。
二、运行环境 无论何时,apache所运行的硬件环境都是对性能影响最大的因素,即使不能对硬件进行升级,也最好给apache一个单独的主机以免受到其他应用的干扰。但很明显,我们的配置页面程序无法满足这个要求。 各个硬件指标中,对性能影响最大的是内存,对于静态内容(图片、javascript文件、css文件等),它决定了apache可以缓存多少内容,它缓存的内容越多,在硬盘上读取内容的机会就越少,而存取硬盘上的特定文件是一件很费时的操作,大内存可以极大提高静态站点的速度;对动态高负载站点来说,每个请求保存的时间更多一些,apache的mpm模块会为每个请求派生出相应的进程或线程分别处理,而进程或线程的数量与内存的消耗近似成正比,因此增大内存对提高动态站点的负载和运行速度也极为有利 其次是硬盘的速度,静态站点尤为突出,apache不断的在读取文件并发送给相应的请求,硬盘的读写是极其频繁的;动态站点也要不断的加载web程序(php等),一个请求甚至要读取十几个文件才能处理完成,因此尽可能的提高硬盘速度和质量对提高apache的性能是有积极意义的。 最后是cpu和网络,cpu影响的是web程序执行速度,网络影响流量大小。 影响性能的另一因素是操作系统,php程序在类unix环境中的执行速度仍然比windows中要快,我们的系统都能满足这个要求了。
三、apache普通配置参数 1、静态还是动态 使用apache的动态载入模块非常方便,因为在需要时模块才会被载入。虽然有些性能开销,但同时有利于减少服务器对内存的需求。 静态载入虽然一次性载入所有需要的模块,增加内存消耗。因此我们全部采用动态载入的方法。 2、hhostnamelookups off 域名查找:这增加了处理每个请求的开销,首先,服务器会对dns系统做一个反向查询以找出客户系统的主机名,然后又进行正向查询看获得的主机名是否真实指向客户的ip。大多数情况下,你可以简单的关闭这个功能,如果你经常处理服务器日志,这个工作完全可以在以后进行。你可以通过在设置文件中加入指示hostnamelookups off来关闭这个功能。 3、options -followsymlinks 符号连接:当打开这个选项时,apache将检查每个请求中是否包含对符号连接的引用,这将对请求中包含的每个路径调用一次lstat()系统调用。除非你准备使用符号连接,否则用 options -followsymlinks 来关掉它。 4、sethandler server-status 服务器状态信息,默认已经关闭。该模块尽管这对测试与监控服务器很有用,但它也为服务器带来了额外的开销,你可以通过寻找任何类似sethandler server-status的指示来关闭,如果可能,你可以在安装apache时移除这个模块。 5、options -indexes 关闭目录浏览 6、directoryindex index.php index.html 在可以更精确的时候尽可能不要使用通配符之类的灵活选项,删除不需要的选项,明确的指定设置文件列表,最常用的放在最前。 7、cgi模块 除非你有很好的理由否则就允许cgi的执行,将似有的cgi文件放到一个特定的目录并为之设定正确的权限,这避免了apache对每一个请求都要判断一次要求的是一个静态文件还是一个动态文件。 8、写入日志 写入日志信息是一个很花费时间的工作,apache保持日志文件的打开状态以节省打开文件的时间,如果没有必要存储日志信息,你可以关闭这个选项以节省出更多的处理器时间,只需要在设置文件中把日志那一行注释掉就可以关掉它。 如果必须保留日志,你可以关闭hostnamelookups选项(见上文)然后把日志文件拷备到另一台机器上做进一步分析。 9、allowoverride none .htaccess文件可以极大的扩展apache的设置参数,而无需每次你改变设计都要编辑apache主设置文件,但对这个文件的使用也降低了服务器的性能。 如果使用这个文件,apache必需首先在当前目录中查找是否存在这个文件,如果存在就解析这个文件并在当前目录中应用文件中的设置。更坏的是,apache不仅要查看当前的目录,还要查看当前目录的所有上层目录是否包括htaccess文件以根据所有这些文件最终确定设置。 如果你想最优化服务器的性能,你应该禁止使用htaccess文件,任何基本目录的设置都可以在主设置文件中进行,而主设置文件仅在服务器启动时解析一次。为了禁用htaccess文件,在任何节里加上指示allowoverride none。 10、timeout 5 timeout 设置 apache 等待一个连接读写操作的时间长度,也就是连接建立后,apache 等待客户端完成请求发送的时间,或者是响应开始之后,apache 写出数据到客户端连接的时间长度。 无论对于哪种应用来说,300秒的缺省值都有些过长了,因为这就意味着,如果客户端发生了某种未知因素导致的迟滞的话,服务器的一个连接和与之对应的所有资源都要维持 300 秒,这个对于重载的服务器来说是在是有些过长,所以,我建议将其设置得小一些,这个长度只要足够保证各种客户端的应用能够正常传递数据即可。这里需要考虑的因素主要有各种客户端的连接状况和服务器的繁忙程度。一般来说,我建议设置为 3~5。 11、keepalive on 这个选项明确 httpd 进程对每个请求的链接是否保持长链接。如果保持长链接,则从同一个客户端的连续两次请求会使用同一个连接,而不用重复发送请求。 对于下载类的应用,因为连接时间都比较长,因此这个值设置成 on 还是 off 关系不大,从节约每一滴资源角度考虑,可以设置为 off。 对于网页类应用来说,如果你的静态页面上有一些图标、图片、和js、css等东西的话,并且如果有超过两个的资源的话,我建议是设置为 on。 12、maxkeepaliverequests 100 最多保持多少个活动的长链接 13、 keepalivetimeout 5 连接的保持时间,超过时间就回收 apache进程在使用内存时,是“渐长”的。也就是说,直到这个进程死掉,使用内存的数量是一直增长而不会减少的。这样的话,apache进程使用内存的多少,就决定于你的应用程序最大使用内存量了。 keepalivetimeout 这个参数决定了,在什么都不做之前,一个http进程能够等待多长时间?设想一下,如果keepalive设置为on,而 keepalivetimeout设置为一个比较大的数字,apache占用内存会很快的增长。这是因为,一个apache进程完成了一个任务(并达到了一定的内存占用,想一下“渐进”模式),并不会马上退出,而是等待一个keepalivetimeout时间。假设用户的链接请求持续不断的到来,则积累起来的无用的apache进程就会相当多,直到timeout,这些进程才会被杀死。 但是,keepalive的确对于静态的文件,比如图像文件的传送是很有效的,因此,keepalive要设置为on,但是keepalvietimeout要设置的小些,比如5s 14、serversignature off 默认情况下,很多apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的apache模块。这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。 所以,请加入如下两条:
serversignature 出现在apache所产生的像404页面、目录列表等页面的底部。servertokens目录被用来判断apache会在server http响应包的头部填充什么信息。如果把servertokens设为prod,那么http响应包头就会被设置成:server:apache
四、MPM模块 多处理方式(multi-processing module/mpm)他允许特定平台处理多个并发连接 apache的mpm模块可运行在多种模式之下,其中beos、mpmt_os2分别是beos和os/2上缺省的mpm, perchild主要设计目的是以不同的用户和组的身份来运行不同的子进程。这在运行多个需要cgi的虚拟主机时特别有用,会比1.3版中的suexec 机制做得更好。leader和threadpool都是基于worker的变体,还处于实验性阶段,某些情况下并不会按照预期设想的那样工作,所以 apache官方也并不推荐使用。因此,我们主要阐述prefork和worker这两种和性能关系最大的产品级mpm ( 有关其它的mpm详细说明,请参见apache官方文档:http://httpd.apache.org/docs-2.0/mod/)。
1、prefork的工作原理及配置
可防止意外的内存泄漏; 在服务器负载下降的时侯会自动减少子进程数。 因此,可根据服务器的负载来调整这个值。但也不能太小,不然系统不断的开启新的apache进程,造成资源浪费。
2、worker的工作原理及配置
五、性能测试 为了获得优化有性能提高的幅度,评估优化工作的成效,需要对apache2服务器进行测试。 测试环境:
在另一台机器上使用apachebench工具模拟多个浏览器向服务器的测试页面发起HTTP请求,为了减少网络带宽的影响,测试页面的返回值尽可能的小,此处只有1 byte,并为发起测试的机器和服务器组建了一个单独的局域网。每种并发测试11次,以后10次的结果为准,取平均值。 以下是测试的数据:其中并发数是指apachebench同时发起的请求个数,优化前和优化后是指平均每个请求花费的处理时间,单位毫秒
由图中可以看出,优化后的效果还是很明显的,无论是在低并发还是高并发下,都有效的提高了请求的相应时间。 需要指出的是,尽管高负载时优化后性能提高的百分比并不明显,但在并发数400时,测试18次失败7次,而优化后测试14次失败3次。优化不仅仅提高了服务器的性能,还提高了负载的能力。
六、结论 优化可以有效的提高apache2的性能。 对于WMS等设备上的配置页面,第三部分的“apache普通配置参数”可以应用,MPM主要是以资源换取速度的优化,可以酌情调整。 对于EM S、升级系统和应用系统,可以全面优化以提高性能和高负载能力。 06 noviembre MySQL主从服务器+读写分离花了三天时间,把MySQL的主从数据库+读写分离部署好了。感觉对缓解大数据流量的服务器压力还是很有效果的。 最近大把时间都花在了数据库上,幸好之前有自己研究过一段时间的数据库,貌似还是上大学的时候。。现在竟然还能回忆起来些 数据库确实是个值得花费精力的地方,很有用。
一、搭Mysql主、从服务器 安装Mysql不是很复杂。主从主要是备份、后续读写分布事务处理等用途
useradd mysql –s /sbin/nologin #生成一个mysql的用户 tar zxvf mysql-5.0.22.tar.gz cd mysql-5.0.22 ./configure --prefix=/usr/local/mysql --localstatedir=/opt/data && make && make install cp support-files/my-large.cnf /etc/my.cnf #配置文档 cd /usr/local/mysql /usr/local/mysql/bin/mysql_install_db --user=mysql chown -R mysql:mysql /opt/data chown -R mysql:mysql /usr/local/mysql 从服务器修改/etc/my.cnf配置文档,server-id=10 /usr/local/mysql/bin/mysqladmin –p shutdown #停服务 /usr/local/mysql/bin/mysqld_safe & #起服务,如果没有起来 多数是权限问题 /usr/local/mysql/bin/mysqladmin –p password’111111’ #修改密码 /usr/local/mysql/bin/mysql –p #登陆,新安装应该没有密码
主服务器上: mysql>grant all privileges on *.* to back@192.168.x.x identified by ‘111111’; #新建一个给从服务器登陆的账号 mysql> show master status;
记下file及position的值,做从服务器操作的时候需要。
配置从服务器 mysql> change master to master_host='192.168.x.x', master_user='back', mysql> start slave; #启用slave mysql> show slave status\G #显示当前slave状态 Slave_IO_Running: Yes
主数据库若有数据:
把主服务器数据文件复制到从服务器,整个目录一起tar过去即可
或者采用如下备份方法: mysqldump -u root -p testdb testtab>d:\testdb_testtab.sql 恢复命令: create database testdb;use testdb; mysql>source d:\testdb_testtab.sql
配置从服务器,保证主服务器的position位置和备份保持一致即可
以上主从服务器操作关键在于 备份数据position对应 以及change master命令。
#关于/mysql-data/master.info文档,看my.cnf配置文档中的说明
也就是说还是推荐用change master to 命令来修改master.info文档。而不要用my.cnf的从服务器配置。
测试: 主服务器上
从服务器上
确认从服务器上有相同的记录即可。
二、读写分离 这部分主要有点是用来给服务器做均衡负载的,其实还是蛮有趣的一个功能。 搭建Mysql-proxy服务可就没那么简单了,如果能够yum一下就全都搞定那就太开心了! 无所谓这台代理服务搭在哪里,主、从或者第三方都OK,我推荐可以在从上面做,测试比较清楚 下面基本就用我history里的命令了,省的一句一句打。
安装 lua
安装 libevent
安装check
安装glib2
安装mysql-proxy
结果提示glib2版本不对
然后提示lua不对,于是我下了一个lua.pc
接着提示libevent错误 研究了半天 直接把安装路径放到/usr/下面
这次总算./configure 通过了 接着make,结果又出错~~提示找不到什么.h的文件
总算make && make install通过了
测试一把,又出错了。。。
原来是selinux作怪,改了。
总算OK了。
接着来配服务。 把 rw-splitting.lua 放到/usr/local/mysql-proxy/share/mysql-proxy/下面
rw-splitting.lua:
local stmt = tokenizer.first_stmt_token(tokens) if stmt.token_name == "TK_SQL_SELECT" then for i = 1, #tokens do if utext == "LAST_INSERT_ID" or -- we found the two special token, we can't find more -- if we ask for the last-insert-id we have to ask it on the original
启动mysql-proxy代理
读写分离测试 登陆3306端口,在从服务器testtb上增加几条记录 客户端做多个连接到mysql-proxy的端口4040。 insert一条记录,可以看到主服务器也有增加了记录。从服务器是同步过来的数据 select * from testtb;在一个客户端连接的时候,显示的是主服务器的表内容 而有多个客户端连接之后,就会显示从服务器的testtb表内容
最后,他是同步所有database的,如果只需要备份指定的数据库,请一定要在my.cnf中加上 replicate-do-db=dbname 不然,他找不到其他数据库,正常的数据库也不会更新了。
生成一个/usr/local/bin/mysql-proxy.sh
在/etc/rc.local 文档中加入一条 /usr/local/bin/mysql-proxy.sh &
参考资料: http://sery.blog.ccidnet.com/blog-htm-do-showone-uid-3587-itemid-472099-type-blog.html MySQL 主从复制读写分离实现 http://www.yayu.org/look.php?id=136 MySQL 主从同步关键句 http://butian.org/knowledge/develop/DB/20090520/1124.html MySQL 主从服务器的一些技巧 http://www.3389hack.com/xueyuan/fuwuqi/MySQL/22601.html MySQL配置文件my.cnf 例子的最详细翻译 05 noviembre Oracle数据库的灾难恢复(转)
首先将数据库shutdown abort,从最近的一次全备份中恢复所有的数据文件,将数据库启动到mount状态。如果原来的日志文件物理位置不可用,使用alter database rename file ‘xxx’ to ‘xxx’改变文件的存放位置。然后,使用recover database until cancel命令来恢复数据库,直到提示最后一个归档日志运用完之后,输入cancel。之后用alter database open resetlogs打开数据库,如果没有问题,立即进行一个冷备份。注意!所有包含在损坏的redo log中的信息将会丢失,也就是说数据库崩溃前已经提交的数据有可能会丢失。这对于某些要求很高的应用将会损失惨重,因此应尽量使每个日志组具有多个日志成员,并且放置在不同的驱动器上一防止发生介质故障。
03 noviembre 对不起。本来想写影评的,明天再写吧
实在是有些受不了。 一个28岁的人 还要寄人于篱下 被迫离开自己最亲的人,去受人照顾 怎么也接受不了。我宁愿一个人漂泊流离 也要靠自己的能力来换取生活 总是想不依靠别人的力量 总是想独立 而且更应该去帮助身边的人 可是似乎很失败 28岁的自己 才刚能勉强让自己一个人生活起来 更别提拿出精力来为别人付出
可是 即使如此 我也不愿意再无端受人照顾了 这是耻辱。
谢谢你们。其实我也知道你们是好意。非常对不起。 02 noviembre It’s loveWe shall always save a place for ourselves, only for ourselves. And then begin to love. Have no idea of what it is, who he is, how to love or how long it will be. Just wait for one love. Maybe no one will come out, but this kind of waiting is the love itself.
刚才在朋友的blog里看到的一句话,突然觉得很有feeling。也许这样子的爱情才是真正的爱情, 态度 可是 等待 似乎又不是一个 最好的途径 谢国忠:有效市场是个神话
最好的办法,是限制货币增长与名义GDP增长率间的偏差 货币需求是有效的吗?这个问题的答案关系到怎样的货币政策称得上最好。随着金融机构杠杆率的提高,对货币需求不断增大,这个问题就相当于在问金融体系是否有效。我认为,答案是否定的。货币当局或中央银行有责任考虑到这一点。最好的办法,是限制货币增长与名义GDP增长率间的偏差。特别是,当经济基本面可能在短期受损时,持续的偏差仍应予以纠正。 神话破灭 这是一个严肃的学术课题。我为什么要在这里和普通读者讨论这个问题? 首先,这与每个人都息息相关。中国的散户投资者主导着资产市场。他们做出投资或投机决定时,大多认为“政府不会让资产价格下跌”。政府支出一旦有了限制,那这种期望还有几分可信?关于对货币扩张限制的讨论,能够帮助中国投资者评估投资决策的风险。 其次,从世界范围来看,货币供应量增速都远远高于名义GDP的增速。也就是说,货币增长被用来支撑高杠杆率,这在金融部门尤其明显。当然,原因是央行通过降低利率来应对金融危机,有时甚至是强行增加银行的流动性,以期他们能够增加贷款,刺激经济。不过,这些钱却流入了资产市场,导致资产市场繁荣兴旺。活跃的资产价格稳定了全球经济。尽管大多数分析家认为,活跃的资产市场反映了他们对全球经济蓬勃发展的正确预期。但是,我认为这不是事实。像过去的十年一样,资产市场的繁荣支持了经济增长,而不是倒过来——由于强大的经济增长导致资产市场繁荣——因此,一切只不过是个泡沫。 尽管全球经济正温和复苏,整体经济形势仍困难重重。经合组织国家的失业率都处于历史高位。资产市场的繁荣与真实的经济困难之间的对比,在近代可谓绝无仅有。尽管工人和企业都在努力挣扎,资产玩家却重新收获了账面利润。资产繁荣的背后,是央行的货币政策。我们不禁要问,政策实现了其帮助实体经济的目标了吗?还是说,政策帮助的只是那些投机者,希望他们能给实体经济留点残羹冷炙? 金融机构从中央银行获取大量货币,但当前的金融危机暴露了货币运行存在的严重低效。对那些引发了危机的人提供如此多的钱,理由恰恰是因为他们引发了危机,这是什么道理?好比说,当房子着火了,你必须扑灭大火并找到罪魁祸首。可问题是,纵火者被要求去救火。那么,如何可以肯定,他们不会引起另一场大火? 大部分人认为改革金融体制,而非限制货币供应,是解决这一问题的办法。一旦如此,未来对货币的需求将是有效的。到目前为止,金融危机中发现的问题仍没有得到纠正。过去十年,全球金融体系已变得相当庞大,将中央银行、立法者和政府困在其中。行将推进的改革,不会触碰到那些引发当前危机的主要因素。即使最好的改革能够实行,核心问题仍然难以解决:金融从业人员用别人的钱来赌博,当下对注的时候,他们将得到巨大的回报;下错注,他们也不会赔偿。这个激励问题表明,现行的全球金融体系,鼓励了风险冒进的偏好,有效市场并非如此。中央银行限制货币供给,是解决这一问题的惟一办法。过去十年的资产价格通胀,以及破灭后的灾难,都证明了这一论点是可信的。 上世纪70年代的滞胀,促使经济学家研究为何货币刺激并没有增加需求,却直接转为通胀。这一研究促进了理性预期理论的发展,解释了大众对货币政策的反应。它的结论显而易见,即决策者可以反复愚弄普通人。多人因此获得诺贝尔奖。米尔顿·弗里德曼主张将以货币供给增长为目标,作为中央银行的指导原则。这一做法将使中央银行以货币增长为目标,“自动驾驶”,并让市场决定利率。 理性预期理论被进一步用来解释投资者的行为,并引出了有效市场理论:在一定条件下,理智的投资者将带来有效的资产价格,这种价格能够正确反映未来预期。用学术术语来说,有效资产价格,就是包含了所有有关未来的有用信息的价格。这为拆除那些源自“大萧条”时期得到的教训而建立起来的监管架构,奠定了基础。 上世纪70年代的滞胀,使得中央银行疲于应付短期通胀。依据有效市场理论,中央银行决定完全满足金融机构的货币需求,以支持他们的杠杆率。这种组合为过去十年间出现的巨大泡沫奠定了基础。由于全球化通胀保持在较低水平,华尔街可以无限量地从中央银行获得流动性,制造泡沫。 在西方金融市场中,机构投资者占主导地位,散户或个人投资者则主导了东方金融市场。多数机构投资者是以季度市场指数为基准,同时,他们持有的现金量还有限制。这些制约因素使他们处于不利地位,很难跑赢大盘。这就是为什么大多数机构投资者都是指数追随者。额外的管理成本,使得大多数机构投资者表现比指数差,这并不会增加市场的效率。 改革的困境 过去十年,金融市场最显著的发展是绝对表现基金(Absolute performance funds)和对冲基金的增加。但是,他们只是放大了市场的波动性,并未提高市场效率。由于对冲基金经理的薪酬是旱涝保收,因此,他们自然乐于见到长期波动。这是一个委婉的“正面算我赢,反面算你输”的掷硬币游戏。对冲基金业让其管理人员,而不是投资人收益颇丰。 无论怎样尝试去改善机构投资者的激励结构,“管理别人的钱”带来的激励扭曲难以改变。制度化一度被誉为提高市场效率的一大进步,已被证明使无效状况更甚。面临着变幻莫测市场的发展中国家,一直寻求以制度化来稳定市场。他们应该三思。制度化或能减少短期波动,但会变成大崩溃。 散户或者个人投资者经常错误地将短时期波动当做趋势。“羊群行为”产生了自我实现的趋势,而这大都只是暂时的。但是,这种羊群行为有时也会持续很长一段时间,引发巨大的泡沫。这种泡沫会导致资源配置严重失当。 为了尽量减少今后出现金融危机的可能,人们可以改革金融体系,以减少出现危机的倾向;或者在制定货币政策时,同时考虑资产价格以及消费物价。一年前,危机爆发时,世界各地的决策者发誓要改革金融体系,消除腐败和过度杠杆化。在政府花费数万亿美元救助金融机构之后,改革的动力已经减弱。美国国会改革法案已经淡化,因此,他们并无力阻止另一次重大危机。 资本充足率要求以及透明度,是有效的金融改革的关键。例如,场外交易的衍生品的名义价值达到数万亿美元。它们在一个不透明的环境中蓬勃发展。做市商可以通过欺骗买家和监管机构获取高额利润:向他们收取超高费用,但他们并未为提供这种高风险产品投入大量资金。如果市场是透明的,而且资本要求合理,那么这项业务也不会开展得这样大。在理论上,衍生工具能够帮助买家降低风险;而在实践中,由于复杂的结构可以隐藏杠杆率,衍生工具会带来更大的风险。除非能够看到旨在针对衍生产品市场的问题的改革,否则,所谓的金融改革很难称之为“有效”。 谁又将声名扫地? 天下没有不散的宴席,现在也是如此。有两个情形预示着另一场危机的爆发。首先,每个交易者借入美元购买东西。华尔街多数交易商是美国人、英国人,还有澳大利亚人。他们都很了解美国。美联储维持着零利率政策,美国政府也支持弱势美元,以刺激美国的出口。除非是傻瓜,人人都能看出,美国政府正在“ 帮助”你借美元去投机。但是,这些交易员对其他国家并不熟悉,特别是新兴经济体。他们一年也就去那里一两次,即使这一两次,还是和美国的投行一起去的:这些投行可是很想要卖东西给他们的。他们愿意相信任何事,除了美元会升值。当然,华尔街的银行也会这么告诉他们。由于这些人为数众多,他们的行动在短期内会自我实现。举例来说,澳元从底部算起,已经升值了35%。现在,这些家伙坐在巨大的账面利润上,感觉自己是如此聪明。当然,华尔街的交易商们在付给投资人之前,已经先喂饱了自己。 一旦交易规模过大,就像现在这样,只需要一个小冲击就能引发飓风,而你永远不知道这个冲击会是什么。一旦有事发生,所有这些交易商就会迅速退出,这可能会导致另一场危机。 石油价格的飙升,可能是宴会中另一个不速之客。它可能引发通胀预期回升,并引发债券市场大崩溃。由此产生的极高债券收益率可能迫使央行提高利率,以减少对通货膨胀的担心。另一轮资产价格大下滑,将再度激起对于全球主要金融机构资产负债表的恐惧,再次造成混乱。 石油是制造泡沫的完美材料:石油供应不能及时回应油价上涨,它需要很长的时间来扩大生产能力,而且由于生活方式和生产方式的粘性,石油需求也不能迅速减少。无论是需求还是供应方面,石油的价格敏感度都较低,很适合用来制造泡沫。当流动性既便宜又易得的时候,石油投机者随处可见。 石油投机商不再只是那些偷偷摸摸的对冲基金。普通百姓也可以通过购买交易所交易基金拥有石油或其他任何东西。而且,没有道理不去这么做。中央银行已明确表示,将保持尽可能充足的货币供给,使纸币贬值,帮助债务人。如果你赌得很大,当你下错注的时候,政府会帮你摆脱困境,并且降低利率以使你能够下更大的赌注。所以,在这个世界上,最好做个投机者,当权者永远与你同在。 对于那些想成为投机分子的人,我有一言相劝:一旦债券市场大幅下跌,尽快逃命去吧。石油泡沫来得容易,去得也快,因为它会刺破其他泡沫。一旦这些泡沫破灭,供石油泡沫生存的氧气也就消失了。 2010年出现二次探底的情况已经很明显。目前的经济复苏得益于企业补充库存以及财政刺激。明年,西方消费者在囊中羞涩之后迅速恢复的几率微乎其微。高失业率将使他们的收入难以支撑其消费。他们不太可能再去借钱消费。 许多分析家都认为,只要失业率依旧居高不下,那么,就应当不断采取刺激政策。正如我刚才所说,供求不匹配——而不是需求疲软本身——是高失业率的主要原因。更多的刺激只会引发通货膨胀和金融不稳定。 上世纪70年代的滞胀,让一批认为可以“用一点通胀换得经济大幅增长”的银行家声名狼藉。当前的这场危机,将会使那些忽略资产价格通胀,甚至创造通胀去刺激经济增长的这一代中央银行家们声名扫地。玩火者,必自焚。■ |
|
|