Spiga

圣诞节音乐精选

01. 3:58 The First Noel 第一个圣诞夜
02. 3:15 Deck the Halls 装饰圣诞大厅
03. 2:54 Winter Wonderland 冬季仙境
04. 5:03 The Christmas Song 圣诞之歌
05. 8:23 Holiday Favorites圣诞特辑: 
Santa Claus Is Coming To Town圣诞老人进城来; 
Here Comes Santa Claus圣诞老人来了; 
Rudolph, the Red-Nosed Reindeer《红鼻子驯鹿鲁道夫》插曲; 
Frosty the Snowman《雪人》插曲; 
Jingle Bells 铃儿响叮当
06. 3:13 White Christmas 白色的圣诞节
07. 3:04 Carol of the Bells 圣诞钟声
08. 3:20 O Tannenbaum 圣诞树
09. 2:55 Do You Hear What I Hear? 你听见了什么?
10. 2:35 Christmas Waltz 圣诞圆舞曲
11. 3:41 Hark! The Herald Angels Sing 听啊,天使唱高声
12. 1:01 Angels We Have Heard On High 天使歌唱在高天
13. 1:57 God Rest Ye Merry, Gentlemen 快乐绅士
14. 2:46 Go Tell It On The Mountain 向苍天呼吁
15. 3:57 O Come, All Ye Faithful 来吧,各位虔诚信徒
16. 3:43 Walking In The Air 漫步在空中
17. 2:52 Sleigh Ride 雪橇乐
18. 3:42 Have Yourself A Merry Little Christmas 你自己过个快乐圣诞
19. 3:35 O Holy Night 噢! 圣善夜
20. 4:20 Silent Night 平安夜


hobbes
hobbes.lee@gmail.com
Guangzhou.China

哥的婚纱照


幸福美满的一家人,这样的婚纱照加上两个小侄儿另有一翻滋味,让人羡慕!
Posted by Picasa

关于开发的问题

       一个公司的软件发管理真的很重要,毕竟软件公司不是Google,Google的开发风格只有在它那样的企业文化里才可能良好的动作,并取得巨大的成功。国内很多公司跟风模仿Google的开发模式但只学到皮毛而已,并没有领悟到精髓。


       谈谈我们公司,这几天认真研究了一下公司产品的数据库(先前同事设计的),太失望了没有规范可言,连在大学数据库课程里基本的三个要求一个都没有达到:
  • 实体完整性
  • 参照完整性
  • 用户自定义完整性
想想这样的设计也能通过,无语中!所以软件工程规范中的代码走查真的很重要,项目经理(工头)做什么就是做这些,有了这一关,这样的设计也过吗?这样的设计注定会带来无穷后患(无从谈升级扩展),另指望你的员工像Google的一样为技术求精而把产品做得尽善尽美。

最后想说:先前设计公司产品数据库的人简直太没有职业道德,太不负责了!

--
hobbes
hobbes.lee@gmail.com
Guangzhou.China

MySQL视图定义规则

MySQL数据库视图定义服从下述限制:

  • SELECT语句不能包含FROM子句中的子查询。
  • SELECT语句不能引用系统或用户变量。
  • SELECT语句不能引用预处理语句参数。
  • 在存储子程序内,定义不能引用子程序参数或局部变量。
  • 在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用CHECK TABLE语句。
  • 在定义中不能引用TEMPORARY表,不能创建TEMPORARY视图。
  • 在视图定义中命名的表必须已存在。
  • 不能将触发程序与视图关联在一起。

在视图定义中允许使用ORDER BY,但是,如果从特定视图进行了选择,而该视图使用了具有自己ORDER BY的语句,它将被忽略。

MySQL 服务器调优

利用服务器的几个调优技巧,让 MySQL 服务器飞速运行
如今,开发人员不断地开发和部署使用 LAMP(Linux®、Apache、MySQL 和 PHP/Perl)架构的应用程序。但是,服务器管理员常常对应用程序本身没有什么控制能力,因为应用程序是别人编写的。这份 共三部分的系列文章 将讨论许多服务器配置问题,这些配置会影响应用程序的性能。本文是本系列文章的第三部分,也是最后一部分,将重点讨论为实现最高效率而对数据库层进行的调 优。

关于 MySQL 调优

有 3 种方法可以加快 MySQL 服务器的运行速度,效率从低到高依次为:
替换有问题的硬件。
对 MySQL 进程的设置进行调优。
对查询进行优化。

替换有问题的硬件通常是我们的第一考虑,主要原因是数据库会占用大量资源。不过这种解决方案也就仅限于此了。实际上,您通常可以让中央处理器(CPU)或磁盘速度加倍,也可以让内存增大 4 到 8 倍。

第二种方法是对 MySQL 服务器(也称为 mysqld)进行调优。对这个进程进行调优意味着适当地分配内存,并让 mysqld 了解将会承受何种类型的负载。加快磁盘运行速度不如减少所需的磁盘访问次数。类似地,确保 MySQL 进程正确操作就意味着它花费在服务查询上的时间要多于花费在处理后台任务(如处理临时磁盘表或打开和关闭文件)上的时间。对 mysqld 进行调优是本文的重点。

最好的方法是确保查询已经进行了优化。这意味着对表应用了适当的索引,查询是按照可以充分利用 MySQL 功能的方式来编写的。尽管本文并没有包含查询调优方面的内容(很多著作中已经针对这个主题进行了探讨),不过它会配置 mysqld 来报告可能需要进行调优的查询。

虽然已经为这些任务指派了次序,但是仍然要注意硬件和 mysqld 的设置以利于适当地调优查询。机器速度慢也就罢了,我曾经见过速度很快的机器在运行设计良好的查询时由于负载过重而失败,因为 mysqld 被大量繁忙的工作所占用而不能服务查询。

记录慢速查询

在一个 SQL 服务器中,数据表都是保存在磁盘上的。索引为服务器提供了一种在表中查找特定数据行的方法,而不用搜索整个表。当必须要搜索整个表时,就称为表扫描。通常 来说,您可能只希望获得表中数据的一个子集,因此全表扫描会浪费大量的磁盘 I/O,因此也就会浪费大量时间。当必须对数据进行连接时,这个问题就更加复杂了,因为必须要对连接两端的多行数据进行比较。

当然,表扫描并不总是会带来问题;有时读取整个表反而会比从中挑选出一部分数据更加有效(服务器进程中查询规划器用来作出这些决定)。如果索引 的使用效率很低,或者根本就不能使用索引,则会减慢查询速度,而且随着服务器上的负载和表大小的增加,这个问题会变得更加显著。执行时间超过给定时间范围 的查询就称为慢速查询。

您可以配置 mysqld 将这些慢速查询记录到适当命名的慢速查询日志中。管理员然后会查看这个日志来帮助他们确定应用程序中有哪些部分需要进一步调查。清单 1 给出了要启用慢速查询日志需要在 my.cnf 中所做的配置。

清单 1. 启用 MySQL 慢速查询日志

[mysqld] ; enable the slow query log, default 10 seconds log-slow-queries ; log queries taking longer than 5 seconds long_query_time = 5 ; log queries that don't use indexes even if they take less than long_query_time ; MySQL 4.1 and newer only log-queries-not-using-indexes

这三个设置一起使用,可以记录执行时间超过 5 秒和没有使用索引的查询。请注意有关 log-queries-not-using-indexes 的警告:您必须使用 MySQL 4.1 或更高版本。慢速查询日志都保存在 MySQL 数据目录中,名为 hostname-slow.log。如果希望使用一个不同的名字或路径,可以在 my.cnf 中使用 log-slow-queries = /new/path/to/file 实现此目的。

阅读慢速查询日志最好是通过 mysqldumpslow 命令进行。指定日志文件的路径,就可以看到一个慢速查询的排序后的列表,并且还显示了它们在日志文件中出现的次数。一个非常有用的特性是 mysqldumpslow 在比较结果之前,会删除任何用户指定的数据,因此对同一个查询的不同调用被计为一次;这可以帮助找出需要工作量最多的查询。

对查询进行缓存

很多 LAMP 应用程序都严重依赖于数据库,但却会反复执行相同的查询。每次执行查询时,数据库都必须要执行相同的工作 ―― 对查询进行分析,确定如何执行查询,从磁盘中加载信息,然后将结果返回给客户机。MySQL 有一个特性称为查询缓存,它将(后面会用到的)查询结果保存在内存中。在很多情况下,这会极大地提高性能。不过,问题是查询缓存在默认情况下是禁用的。

将 query_cache_size = 32M 添加到 /etc/my.conf 中可以启用 32MB 的查询缓存。

监视查询缓存

在启用查询缓存之后,重要的是要理解它是否得到了有效的使用。MySQL 有几个可以查看的变量,可以用来了解缓存中的情况。清单 2 给出了缓存的状态。

清单 2. 显示查询缓存的统计信息
mysql> SHOW STATUS LIKE 'qcache%';
+――――――――-+――――+
| Variable_name           | Value      |
+――――――――-+――――+
| Qcache_free_blocks      | 5216       |
| Qcache_free_memory      | 14640664   |
| Qcache_hits             | 2581646882 |
| Qcache_inserts          | 360210964 |
| Qcache_lowmem_prunes    | 281680433 |
| Qcache_not_cached       | 79740667   |
| Qcache_queries_in_cache | 16927      |
| Qcache_total_blocks     | 47042      |
+――――――――-+――――+
8 rows in set (0.00 sec)

这些项的解释如表 1 所示。

表 1. MySQL 查询缓存变量变量名 说明
Qcache_free_blocks 缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE 会对缓存中的碎片进行整理,从而得到一个空闲块。
Qcache_free_memory 缓存中的空闲内存。
Qcache_hits 每次查询在缓存中命中时就增大。
Qcache_inserts 每次插入一个查询时就增大。命中次数除以插入次数就是不中比率;用 1 减去这个值就是命中率。在上面这个例子中,大约有 87% 的查询都在缓存中命中。
Qcache_lowmem_prunes 缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内 存很少。(上面的 free_blocks 和 free_memory 可以告诉您属于哪种情况)。
Qcache_not_cached 不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句。
Qcache_queries_in_cache 当前缓存的查询(和响应)的数量。
Qcache_total_blocks 缓存中块的数量。
通常,间隔几秒显示这些变量就可以看出区别,这可以帮助确定缓存是否正在有效地使用。运行 FLUSH STATUS 可以重置一些计数器,如果服务器已经运行了一段时间,这会非常有帮助。

使用非常大的查询缓存,期望可以缓存所有东西,这种想法非常诱人。由于 mysqld 必须要对缓存进行维护,例如当内存变得很低时执行剪除,因此服务器可能会在试图管理缓存时而陷入困境。作为一条规则,如果 FLUSH QUERY CACHE 占用了很长时间,那就说明缓存太大了。

强制限制

您可以在 mysqld 中强制一些限制来确保系统负载不会导致资源耗尽的情况出现。清单 3 给出了 my.cnf 中与资源有关的一些重要设置。

清单 3. MySQL 资源设置
set-variable=max_connections=500
set-variable=wait_timeout=10
max_connect_errors = 100

连接最大个数是在第一行中进行管理的。与 Apache 中的 MaxClients 类似,其想法是确保只建立服务允许数目的连接。要确定服务器上目前建立过的最大连接数,请执行 SHOW STATUS LIKE 'max_used_connections'。

第 2 行告诉 mysqld 终止所有空闲时间超过 10 秒的连接。在 LAMP 应用程序中,连接数据库的时间通常就是 Web 服务器处理请求所花费的时间。有时候,如果负载过重,连接会挂起,并且会占用连接表空间。如果有多个交互用户或使用了到数据库的持久连接,那么将这个值设 低一点并不可取!

最后一行是一个安全的方法。如果一个主机在连接到服务器时有问题,并重试很多次后放弃,那么这个主机就会被锁定,直到 FLUSH HOSTS 之后才能运行。默认情况下,10 次失败就足以导致锁定了。将这个值修改为 100 会给服务器足够的时间来从问题中恢复。如果重试 100 次都无法建立连接,那么使用再高的值也不会有太多帮助,可能它根本就无法连接。

缓冲区和缓存

MySQL 支持超过 100 个的可调节设置;但是幸运的是,掌握少数几个就可以满足大部分需要。查找这些设置的正确值可以通过 SHOW STATUS 命令查看状态变量,从中可以确定 mysqld 的运作情况是否符合我们的预期。给缓冲区和缓存分配的内存不能超过系统中的现有内存,因此调优通常都需要进行一些妥协。

MySQL 可调节设置可以应用于整个 mysqld 进程,也可以应用于单个客户机会话。

服务器端的设置

每个表都可以表示为磁盘上的一个文件,必须先打开,后读取。为了加快从文件中读取数据的过程,mysqld 对这些打开文件进行了缓存,其最大数目由 /etc/mysqld.conf 中的 table_cache 指定。清单 4 给出了显示与打开表有关的活动的方式。

清单 4. 显示打开表的活动
mysql> SHOW STATUS LIKE 'open%tables';
+―――――+――-+
| Variable_name | Value |
+―――――+――-+
| Open_tables   | 5000 |
| Opened_tables | 195   |
+―――――+――-+
2 rows in set (0.00 sec)

清单 4 说明目前有 5,000 个表是打开的,有 195 个表需要打开,因为现在缓存中已经没有可用文件描述符了(由于统计信息在前面已经清除了,因此可能会存在 5,000 个打开表中只有 195 个打开记录的情况)。如果 Opened_tables 随着重新运行 SHOW STATUS 命令快速增加,就说明缓存命中率不够。如果 Open_tables 比 table_cache 设置小很多,就说明该值太大了(不过有空间可以增长总不是什么坏事)。例如,使用 table_cache = 5000 可以调整表的缓存。

与表的缓存类似,对于线程来说也有一个缓存。 mysqld 在接收连接时会根据需要生成线程。在一个连接变化很快的繁忙服务器上,对线程进行缓存便于以后使用可以加快最初的连接。

清单 5 显示如何确定是否缓存了足够的线程。

清单 5. 显示线程使用统计信息
mysql> SHOW STATUS LIKE 'threads%';
+――――――-+――�+
| Variable_name     | Value |
+――――――-+――�+
| Threads_cached    | 27     |
| Threads_connected | 15     |
| Threads_created   | 838610 |
| Threads_running   | 3      |
+――――――-+――�+
4 rows in set (0.00 sec)

此处重要的值是 Threads_created,每次 mysqld 需要创建一个新线程时,这个值都会增加。如果这个数字在连续执行 SHOW STATUS 命令时快速增加,就应该尝试增大线程缓存。例如,可以在 my.cnf 中使用 thread_cache = 40 来实现此目的。

关键字缓冲区保存了 MyISAM 表的索引块。理想情况下,对于这些块的请求应该来自于内存,而不是来自于磁盘。清单 6 显示了如何确定有多少块是从磁盘中读取的,以及有多少块是从内存中读取的。

清单 6. 确定关键字效率
mysql> show status like '%key_read%';
+――――――-+―――�+
| Variable_name     | Value     |
+――――――-+―――�+
| Key_read_requests | 163554268 |
| Key_reads         | 98247     |
+――――――-+―――�+
2 rows in set (0.00 sec)

Key_reads 代表命中磁盘的请求个数, Key_read_requests 是总数。命中磁盘的读请求数除以读请求总数就是不中比率 ―― 在本例中每 1,000 个请求,大约有 0.6 个没有命中内存。如果每 1,000 个请求中命中磁盘的数目超过 1 个,就应该考虑增大关键字缓冲区了。例如,key_buffer = 384M 会将缓冲区设置为 384MB。

临时表可以在更高级的查询中使用,其中数据在进一步进行处理(例如 GROUP BY 字句)之前,都必须先保存到临时表中;理想情况下,在内存中创建临时表。但是如果临时表变得太大,就需要写入磁盘中。清单 7 给出了与临时表创建有关的统计信息。

清单 7. 确定临时表的使用
mysql> SHOW STATUS LIKE 'created_tmp%';
+――――――――-+――-+
| Variable_name           | Value |
+――――――――-+――-+
| Created_tmp_disk_tables | 30660 |
| Created_tmp_files       | 2     |
| Created_tmp_tables      | 32912 |
+――――――――-+――-+
3 rows in set (0.00 sec)

每次使用临时表都会增大 Created_tmp_tables;基于磁盘的表也会增大 Created_tmp_disk_tables。对于这个比率,并没有什么严格的规则,因为这依赖于所涉及的查询。长时间观察 Created_tmp_disk_tables 会显示所创建的磁盘表的比率,您可以确定设置的效率。 tmp_table_size 和 max_heap_table_size 都可以控制临时表的最大大小,因此请确保在 my.cnf 中对这两个值都进行了设置。

每个会话的设置

下面这些设置针对于每个会话。在设置这些数字时要十分谨慎,因为它们在乘以可能存在的连接数时候,这些选项表示大量的内存!您可以通过代码修改会话中的这些数字,或者在 my.cnf 中为所有会话修改这些设置。

当 MySQL 必须要进行排序时,就会在从磁盘上读取数据时分配一个排序缓冲区来存放这些数据行。如果要排序的数据太大,那么数据就必须保存到磁盘上的临时文件中,并再 次进行排序。如果 sort_merge_passes 状态变量很大,这就指示了磁盘的活动情况。清单 8 给出了一些与排序相关的状态计数器信息。

清单 8. 显示排序统计信息
mysql> SHOW STATUS LIKE "sort%";
+――――――-+―――+
| Variable_name     | Value   |
+――――――-+―――+
| Sort_merge_passes | 1       |
| Sort_range        | 79192   |
| Sort_rows         | 2066532 |
| Sort_scan         | 44006   |
+――――――-+―――+
4 rows in set (0.00 sec)

如果 sort_merge_passes 很大,就表示需要注意 sort_buffer_size。例如, sort_buffer_size = 4M 将排序缓冲区设置为 4MB。

MySQL 也会分配一些内存来读取表。理想情况下,索引提供了足够多的信息,可以只读入所需要的行,但是有时候查询(设计不佳或数据本性使然)需要读取表中大量数 据。要理解这种行为,需要知道运行了多少个 SELECT 语句,以及需要读取表中的下一行数据的次数(而不是通过索引直接访问)。实现这种功能的命令如清单 9 所示。

清单 9. 确定表扫描比率
mysql> SHOW STATUS LIKE "com_select";
+―――――+――�+
| Variable_name | Value |
+―――――+――�+
| Com_select    | 318243 |
+―――――+――�+
1 row in set (0.00 sec)

mysql> SHOW STATUS LIKE "handler_read_rnd_next";
+―――――――�+―――�+
| Variable_name         | Value     |
+―――――――�+―――�+
| Handler_read_rnd_next | 165959471 |
+―――――――�+―――�+
1 row in set (0.00 sec)

Handler_read_rnd_next / Com_select 得出了表扫描比率 ―― 在本例中是 521:1。如果该值超过 4000,就应该查看 read_buffer_size,例如 read_buffer_size = 4M。如果这个数字超过了 8M,就应该与开发人员讨论一下对这些查询进行调优了!

3 个必不可少的工具

尽管在了解具体设置时,SHOW STATUS 命令会非常有用,但是您还需要一些工具来解释 mysqld 所提供的大量数据。我发现有 3 个工具是必不可少的;在 参考资料 一节中您可以找到相应的链接。

大部分系统管理员都非常熟悉 top 命令,它为任务所消耗的 CPU 和内存提供了一个不断更新的视图。 mytop 对 top 进行了仿真;它为所有连接上的客户机以及它们正在运行的查询提供了一个视图。mytop 还提供了一个有关关键字缓冲区和查询缓存效率的实时数据和历史数据,以及有关正在运行的查询的统计信息。这是一个很有用的工具,可以查看系统中(比如 10 秒钟之内)的状况,您可以获得有关服务器健康信息的视图,并显示导致问题的任何连接。

mysqlard 是一个连接到 MySQL 服务器上的守护程序,负责每 5 分钟搜集一次数据,并将它们存储到后台的一个 Round Robin Database 中。有一个 Web 页面会显示这些数据,例如表缓存的使用情况、关键字效率、连接上的客户机以及临时表的使用情况。尽管 mytop 提供了服务器健康信息的快照,但是 mysqlard 则提供了长期的健康信息。作为奖励,mysqlard 使用自己搜集到的一些信息针对如何对服务器进行调优给出一些建议。

搜集 SHOW STATUS 信息的另外一个工具是 mysqlreport。其报告要远比 mysqlard 更加复杂,因为需要对服务器的每个方面都进行分析。这是对服务器进行调优的一个非常好的工具,因为它对状态变量进行适当计算来帮助确定需要修正哪些问题。



--
hobbes
hobbes.lee@gmail.com
Guangzhou.China

保齡球比賽最丟脸的一幕

还真丢脸!:)

Google profile更新

Google profile新增图片功能,可以选择一组图片(picasaweb)做slideshow展示您自己,下面是我的Google profile 



测试Google Presentation Slide

下面是一个大学数据库教程关系代数

在Gmail中听音乐

Gmail Labs的Add a gadget功能太强大了,通过这个功能我们可以在Gmail中听我们喜欢的音乐,下图就是我Gmail中的YOBO音乐播放器,都是我平时喜欢听的歌,是不是很酷啊!这样我们随时随地打开Gmail就可以听歌了。

当然要自己稍微动一下手才行:做一个XML文件

有时间再写一下具体怎么做。


23 项 GMail 添加的新功能




✔ 应用在 Android 平台上的移动设备 Google Mail 
✔ 体验 Google 实验室的 15 项新特性 
✔ 邮件内任何地方都可以添加表情符号 
✔ 为移动用户开发的新版本的 Gmail 2.0 已经提供下载
✔ 在 Gmail 的"设置"项下添加 Google Mail labs
✔ 彩色 Label
✔ 类似 QQ 的群聊功能 
✔ 新的表情符 
✔ 免费的 IMAP 服务 
✔ 以侧边栏的形式显示你的邮件附件,比如 PPT、DOC、EXCEL等格式的文件 
✔ 准确快速的新信息提示 
✔ "回到对话开始"链接 
✔ 从其它支持 POP3 的邮件帐号中获取邮件 
✔ 加入 GMail 的大家庭无需邀请即可注册
✔ 从手机上访问 GMail 
✔ 在 GMail 里畅所欲言 
✔ 自动监测病毒邮件
✔ 可以设置自动回复功能 
✔ 方便的联系组功能
✔ 以 HTML 格式显示邮件
✔ 20 分钟自动保存功能 
✔ 自定义邮件发出时显示的邮件地址 
✔ 联系人导出功能

Gmail的附件的Slideshow应用

    今晚由于需要看一份PPT,用Powerpoint打开,不知为什么总感觉不爽,看起来不方便。于是想到Gmail的附件可以用Slideshow方式打开PPT文档,那样阅读PPT体验应该不错,说做就做马上把所以的PPT上传到Gmail邮箱,反正容量多的是7225MB我才只用了700MB不到。

上传后Gmail附件如下图,是不是很壮观:)
点击" View as slideshow ",然后在浏览器新标签中就可以阅读PPT了,速度也很快,更方便的是还可以下拉菜单选择页面看,感觉Cool极了

孟庭葦 冬季到台北來看雨

Logrotate轮转日志

无意中发现一个不错的功能!

今天在Fedora8.0系统/var/log/目录看到系统日志都有以日期结尾的文件,logrotate轮转日志结尾都是如messages.1、messages.2这样的文件啊,man一下logrotate看到有这样一个参数:
dateext
              Archive old versions of log files adding a daily extension like YYYYMMDD instead of simply adding a number.

再看版本:
$> logrotate -v
logrotate 3.7.5 - Copyright (C) 1995-2001 Red Hat, Inc.

工作开发环境中的logrotate是logrotate 3.7.1,要轮转成以当天日期结尾的文件要另外找解决方法。现在logrotate 3.7.5有了dateext参数可以轻易解决这个问题了。

iftop查看实时网络流量

iftop虽然不是随发行版本发布,但在大部分的yum节点提供安装,注意这是实时监控网络数据。

查看ppp0网络接口的实时流量
# iftop -i ppp0

以字节(bytes)为单位显示流量(预设是位bits):
# iftop -B

直接显示IP, 不进行DNS反解:
# iftop -n

直接显示连接端口编号, 不显示服务名称:
# iftop -N

显示192.168.1.0网段进出封包流量
# iftop -F 192.168.1.0/24 (或192.168.1.0/255.255.255.0

其它参数可下 iftop -h 看说明。
像top一样,进入iftop画面时, 可按 p 切换是否显示连接端口,n 切换显示IP或主机的domain name,N切换显示连接端口代号或名称,p暂停显示,b切换是否显示长条,B切换计算几秒内的平均流量,其它按键可以按h观看说明。
还可根据~/.iftoprc设定不同的变量方便今后直接引用。
 

牛人翻唱三鹿版我和你~

改编得太好了!唱得也好,说明群众的力量是无穷的。

TIME杂志评出来的10个火山

印度尼西亚Krakatoa 火山,最近爆发时间:1883年
在爪哇和苏门答腊之间巽他海峡中心一个岛上的火山。1883年大喷发造成历史上最严重的灾难。澳大利亚、日本和菲律宾都能听到爆炸声,大量的火山灰洒落到80万平方千米的地区。它引起海啸,浪高36米,造成爪哇和苏门答腊36,000人死亡。1927年再次喷发,至今仍在活动。

------------------------------------------

马提尼克(Martinique,法国海外省)Pelée 火山,最近爆发时间:1902年
1902年5月8日猛烈喷发,其南6公里的圣皮埃尔全城被毁,喷发物覆盖了全岛六分之一的土地,全城3万居民几全部丧生。同年8月30日继续喷发,又毁灭两个村镇。

------------------------------------------

美国St. Helens火山,最近爆发时间:1980年
1980年喷发,为北美洲有记录以来最强烈的火山爆发中的一次。地震、火山熔岩的喷出及雪崩造成60人及数以千计动物死亡,1,000万棵树木被侧面气流烧毁,火山爆发前圣海伦斯山高2,925米以上,火山爆发后使该山降低到2,550米。自1980年以来又喷发多次,火山口内断断续续形成熔岩穹丘。

------------------------------------------

美国夏威夷火山国家公园,最近爆发时间:1984
成立于1916年,公园主要包括冒纳罗业和基拉韦厄两座现代活火山。莫纳罗亚山活火山最近的一次喷发是在1984年,而基拉韦厄火山自1983年开始就不断流出少量融浆。

------------------------------------------

巴布亚新几内亚Tavurvur 火山,最近爆发时间:2006
2006年10月7日,巴布亚新几内亚新不列颠岛上的Tavurvur火山爆发了,从火山口喷出的岩浆和火山灰遮住了半边天空,而岛民们则站在对岸悠闲地观看这壮观的一幕。

------------------------------------------

印度尼西亚Merapi 火山,最近爆发时间:2006年
默拉皮火山在印度尼西亚的爪哇岛,是一个锥形火山。自从1548年起,已经断续喷发了68次。

------------------------------------------

厄瓜多尔Tungurahua 火山,最近爆发时间:2006年
自1999年以来该火山处在喷发过程中,火山海拔5029米。这是2006年的火山爆发照片,在这次爆发中5人伤生,13人受伤,5个村子被毁掉。

------------------------------------------

美国Cleveland 火山,最近爆发时间:2006年
Cleveland 火山位于美国阿拉斯加阿留申群岛,是当地最活跃的火山。

------------------------------------------

留尼汪(Reunion 法国海外省)Furnace 山峰,最近爆发时间:2007年
Furnace 山峰从1640年开始总共爆发了180次。它现在是留尼汪最著名的风景区。

------------------------------------------

智利Chaitén 火山,最近爆发时间2008年
9000年第一次爆发,2008年5月。

危难日闲逛证券业

DOW(道琼斯股票指数) 今天已经跌了500点,这是不是一场金融风暴的开端?谁知道呢,反正未来不可预知,且随我们一起逛逛世界各地的证券交易所吧。via oobject

斯坦福 UBS,世界最大的交易大厅

The Worlds Largest Trading Floor at UBS in Stamford Connecticut

steroids 超级工作台

Trading desk on steroids

当年的纽约证券交易所还没有电脑屏幕

The New York Stock Exchange before computer screens

基金经理 Adam Sender 同学的装备,有20个显示器的办公桌

Hedge Fund Manager, Adam Sender's 20 Monitor Set Up

80年代的 BofA 交易所(那时候全靠电话)

1980s BofA trading desks

德国法兰克福的圆形交易区

Circular Trading Desks at the Frankfurt Stock Exchange

房地美的交易大厅

Freddie Mac Trading Floor

东京证券交易所的全封闭玻璃厅

Enclosed glass cylinder trading room at Tokyo Stock Exchange

KL 财团的证券交易工作台

Stock market trading desk at KL Financial Group, Palm Beach

1986年日内瓦证券交易所

Crazy looking trading ring at the Geneva Stock Exchange in 1986

圆形货币交易台

Circular Currency Trader Desk

纽约证券交易所虚拟交易大厅和控制中心

NYSE Virtual Trading Floor & NYSE Command Center

NOVUS 交易台


iptabes链表图

Posted by Picasa

嘉禾的伴嫁歌-从远古唱来,哀怨至极,闻者泪下

小时候经历的的这些,当时什么都不懂还以为全国其它地方也这样:女儿出嫁都要哭嫁,其实想错了。没想到嘉禾的这种伴嫁歌是有段来历的,下面是转载网上的介绍文章。以后结婚可以考虑这种遗留下来的民风。


嘉禾伴嫁歌:从远古唱来哀怨至极闻者泪下

"女呀,喊你早晨回来,女呀;哎咳,娘呀,早晨回来露水大呢,娘呀……"3月20日,是嘉禾县城关镇东塔 社区李美珍女士的大喜日子,她在亲朋好友的送嫁途中,唱起了让笔者感到新奇的民歌。旁人告之我们,这就是赫赫有名的嘉禾"伴嫁歌"。民歌界有"北有兰花 花,南有伴嫁歌"之说。翻开湖南首批非物质文化遗产名录,"嘉禾伴嫁歌"赫然跃入眼帘……是什么原因,使嘉禾伴嫁歌名扬四海,其魅力到底何在?

一首首从远古唱来的传奇之歌
勤劳、善良、勇敢的嘉禾人,在长期的劳动生活中品竹调丝,莺歌燕舞,创造了嘉禾民歌艺术,而嘉禾民歌中的伴嫁歌,就是一朵盛开千古、永不凋谢的 艺术奇葩。嘉禾民歌素有"北有兰花花,南有伴嫁歌"之说,它不仅历史悠久,数量多,风格独特,而且蕴藏着深刻的历史内涵,具有现实主义和浪漫主义色彩。
嘉禾伴嫁歌源远流长。传说楚怀王的孙子义帝熊心的女儿楚玉偶遇嘉禾逃婚女陈线云,在了解陈线云的不幸婚姻后,在其出嫁的前一天晚上,领着一群仙 女从天而降,来到陈家。当晚,陈线云和公主楚玉一唱一和,连唱了数百首当地流传的"哭嫁歌",其中有7首长歌,每首长达140多句,每句都是感谢父母养育 之恩和劝说父母不要干涉儿女婚姻自由的歌词。众仙女踏着节拍,边歌边舞,不时还与线云、公主相互对唱。直到天亮时分,楚玉才率众仙女踏着彩云而去。从此, 唱伴嫁歌、跳伴嫁舞的习俗在嘉禾沿袭至今,并形成了一条不成文的规矩:凡嫁女的人家,一般都要连唱两晚伴嫁歌。第一晚唱短歌,只唱耍歌,半夜即散,叫伴小 嫁;第二晚上半夜唱"耍歌",下半夜唱"长歌",直唱到次日黎明见到曙光才散场,叫伴大嫁。
时隔两千多年后,传说家住钟水河畔(今嘉禾县石桥镇仙江村)有位叫罗四姐的女孩,是当地方圆数百公里有名的民歌师傅,人们每逢娶亲嫁女要请她去 唱歌。一日,当她得知广西桂林有位叫刘三姐的也很能唱时,便打点行装,孤身一人跋山涉水赶去广西,找到了刘三姐。两人约定端午节在柳州的鱼峰山对歌。消息 传出后,壮、汉两族男女歌迷端午节清早,便从四面八方涌来,挤满了大河两岸,等着观看对歌。罗四姐与刘三姐来到河边,两岸人群便一片欢呼。"一条大河隔两 岸,湖广两地各一方,今日对歌缘何起?汉家妹子请搭腔"。刘三姐发歌后,罗四姐清了清嗓子,应唱到:"眼前大河长又宽,湖广两地共青天,唱歌来会广西姐, 壮汉两族心相连。"刘三姐与罗四姐对了两天两夜,没有分出输赢,两人又商定第三天决胜负。"倒唱顺唱都是歌,两岸青山都是药,岭上黄牛都是马,百鸟下堂都 是鹅"。"鸡婆崽,矮婆梭,三岁女儿会唱歌,不是娘爷教会的,自己肚里意思多。"结果,第三天,又没分出胜负,被世人传为佳话。
据不完全统计,嘉禾伴嫁歌现在还流传1200多首。1993年,该县被省文化厅命名为"民歌之乡"。
一首首倾泻女人情感的哀怨之歌
嘉禾伴嫁歌是女伴陪出嫁姑娘以歌表情的一种惜别活动,它最突出的是围绕新娘出嫁,倾泻出她们的离情别绪,其中又以表现她们对封建婚姻制度、伦理 道德的怨恨、愤怒与抗争为主。其代表作《半升绿豆》这样唱道:半升绿豆选豆种,我娘养女不择家。妈妈呀,害了我。千家万家都不嫁,偏嫁给财主做三房。妈妈 呀,害了我。嫁鸡随鸡,嫁狗随狗,嫁根木头背着走。妈妈呀,害了我。是谁订出恶规矩,吃人不把骨头吐!
过去,封建婚姻制度及其伦理道德给妇女的婚姻生活酿下了许许多多的惨剧。在《十八满姑三岁郎》里这样唱道:十八满姑三岁郎,夜夜抱郎上牙床。半 夜三更寻奶吃,我是你妻不是娘,不念你是独零仔,一脚要你见阎王。在《少来守寡时时难》里,她们这样唱道:蜡树叶子四季青,时时刻刻有忧心。老来守寡也不 易,少来守寡时时难。儿哭哪个哄?女哭哪个拦?也想跳一步,舍不得田和庄,也想不学好,臭名又难当。在骂媒歌里她们唱得更是一针见血:死媒婆,瘟媒婆,吃 了好多老鸡婆,你初一吃了初三死,初三埋在大路坡,牛一脚,马一脚,啃出肠子狗来拖。在这些歌曲里,她们都面临着一场类似的可怕命运,但她们都在阉割着自 己的情感,又找不出造成这种悲剧的真正根源。只有面对婚姻的直接干预者,埋怨于爹娘,泄恨于媒人,归究于命运。于是乎,怨天怨地怨父母,骂天骂地骂媒人, 从心底里不满"生人睡在死人边"的婚姻生活现状,有的或烧香拜佛,出家为尼,或寻短见。她们诅咒男人早死:人家丈夫雄又雄,我的丈夫像古董。哪年哪月古董 死,放开金锁走蛟龙。听了这些如怨如诉、愤懑不平的心声,人们都会自觉和不自觉地为旧社会妇女的悲苦命运洒下同情的泪水。

Google Reader in Plain English

Google reader视频

关注福原爱

福原爱这个瓷娃娃真的好可爱,特别是说话的样子,那么纯真,我认为很像奥地利茜茜公主。

中文名:福原爱
英文名:FUKUHARA AI
别 号:瓷娃娃
出生日:1988年11月1日
星 座:天蝎座
身 高:156cm(17岁时)
体 重:48kg(16岁时)
血 型:B
视 力:左1.0 右2.0
国 籍:日本
掌握的语言:日语 汉语
学 业:2001年五月开始在青森山田中学学习,2007年高中毕业进入日本早稻田大学。
籍 贯:宫城县仙台市(当年鲁迅留学所在地)
项 目:乒乓球
打 法:右手横拍快攻
偶 像:王楠
教 练:汤媛媛

下面是央视记者采访福原爱的视频


2008奥运会

奥运会开始啦,昨晚在电视机旁一动不动的看了四个小时,觉得开幕式还是不错,点燃火炬也有比较有创意,选择体操王子李宁也应该是实至名归,听说因为这阿迪达斯和耐克气死了:)

下面是Google maps上的一个一站式的奥运更新的页面,包括奥运奖牌排行、比赛项目时间和结果、场馆卫星地图等

When you believe(中英对照歌词)

演唱:Mariah Carey

[00:05.09]Many nights we'are pray.很多夜里我们在祈祷着。
[00:08.49]With no proof anyone could hear.并不一定人人都听得见。
[00:12.78]And our hearts a hopeful song.我们心中的希望之歌。
[00:16.47]We barely understood.我们也不能完全理解。
[00:20.34]Now we are not afraid.如今我们一无所惧。
[00:24.34]Although we know there's much to fear.尽管我们知道前路困难重重。
[00:28.50]We were moving mountains.我们移山之力。
[00:31.33]Long before we knew we could.很久以前就可以了(只是我们原来不知道)。
[00:37.59]
[00:41.11]There can be miracles.奇迹就会出现。
[00:44.62]When you believe.当你充满信心。
[00:48.04]Though hope is frail.尽管希望渺茫。
[00:51.81]It's hard to kill.但却难以扼杀。
[00:56.53]Who knows what miracles ? 谁能预料到会有什么奇迹?
[01:00.09]you can achieve.能由你达成。
[01:03.94]When you believe.当你充满信心。
[01:07.18]Somehow you will.突然之间你就创造了奇迹。
[01:11.67]U will when you believe ! 只要有坚定的信仰你就能成功!
[01:17.70]
[01:22.94]In this time of fear.你面对恐惧时。
[01:26.33]When prayer so often proves in vain.当你徒劳的频频祈祷时。
[01:30.59]Hope seems like the summer birds.当希望就象夏日的鸟儿。
[01:34.15]Too swiftly flown away.眨眼就飞走了的时候。
[01:38.11]And now I am standing here.然而此刻我站在这里。
[01:41.90]My heart's so full I can't explain.心中充满难以表达的激情。
[01:45.80]Seeking faith & speaking words.寻求信仰和勇敢的演讲。
[01:49.84]I never thought I'd say.说我从未曾说过的话。
[01:58.29]There can be miracles.奇迹就会出现。
[02:01.95]When you believe(When you believe).当你充满信心!
[02:05.69]Though hope is frail.尽管希望渺茫。
[02:08.53]It's hard to kill.但却难以扼杀。
[02:13.49]Who knows what miracles ? 谁能预料到会有什么奇迹?
[02:17.10]you can achieve(you can achieve).你就能成功!
[02:20.80]When you believe.当你充满信心。
[02:23.82]Somehow you will.突然之间你就创造了奇迹。
[02:28.40]U will when you believe ! 只要有坚定的信仰你就能成功!
[02:35.50]
[02:45.95]They don't always happen when you ask.你求助四方却无人回应。
[02:53.58]And it's easy to give in to Ur fear.屈服于恐惧是那么的容易。
[03:01.18]But when U're blinded by Ur pain.当你被痛苦蒙住了双眼。
[03:04.80]Can't see Ur way safe through the rain.就看不到雨中的路。
[03:08.87]A small but still resilient voice.一个微弱但持续回响的声音。
[03:11.75]Says done is very near.告诉你胜利就在眼前。
[03:17.56]There can be miracles(miracles).会有奇迹发生。
[03:20.91]When you believe(When you believe).当你充满信心!
[03:24.51]Though hope is frail.尽管希望渺茫。
[03:27.24]It's hard to kill.但却难以扼杀。
[03:31.92]Who knows what miracles ? 谁能预料到会有什么奇迹?
[03:36.30]you can achieve(you can achieve).你就能成功!
[03:40.07]When you believe.当你充满信心。
[03:43.30]Somehow you will.突然之间你就创造了奇迹。
[03:48.08]Somehow you will.突然之间你就创造了奇迹。
[03:52.54]U will when you believe ! 只要有坚定的信仰你就能成功!
[04:00.04]U will(U will)when U believe ! 当你充满信心!
[04:10.03]Just believe ! 仅仅是充满信心!
[04:17.50]
[04:18.74]U will when you believe ! 只要有坚定的信仰你就能成功!

下面请欣赏Mariah Carey 和Whitney Houston 对唱视频:

无题

记下那难忘的一刻!






Linux日志文件系统

Linux所谓日志文件系统,就是在文件系统中借用了数据库中“事务”的概念,最典型的就是银行交易,将文件的更新操作变成原子操作。具体来说,就是在修改文件 系统内容的同时(或之前),将修改变化记录到日志中,这样就可以在意外发生的情况下,就可以根据日志将文件系统恢复到一致状态。这些操作完全可以在重新挂 载文件系统时来完成,因此在重新启动机器时,并不需要对文件系统再进行一致性检查,这样可以大大提高系统的可用程度。

HTTP服务器优化(Apache)


  1. ExtendedStatus On 因为写入额外的时间标志,设off
  2. MPM:worker-多进程多线程新型设计,适合高流量服务, prefork-稳定,无线程,占用较多内存。
  3. 注释LoadMoule指令中不要的模块。
  4. DDYNAMIC_MODULE_LIMIT:不使用动态加载,可以在编译服务器时定义 -DDYNAMIC_MODULE_LIMIT=0,内存吃紧时可以采用。
  5. 关掉HostnameLookups off,这样少一dns查询,日志处理可以另外用软件。
  6. 应当放弃对符号连接的保护,在所有地方都设置FollowSymLinks ,并放弃使用SymLinksIfOwnerMatch, -FollowSymLinks +SymLinksIfOwnerMatch
  7. DirectoryIndex index*,不要使用通配符,全用完整列表,如:DirectoryIndex index.cgi index.pl index.shtml index.html。
  8. NFS或Solaris装载的文件系统需要关闭内存映射。
  9. 使用sendfile,同样NFS或交叉编译对sendfile支持有缺陷时不要使用sendfile。
  10. 如果启用了持久链接Keepalive,子进程将保持忙碌状态以等待被打开连接上的新请求。为了最小化其负面影响,KeepAliveTimeout的默认值被设置为5秒。不能大于60秒。
  11. 多socket情况下的串行accept :阻塞和非阻塞连接socket。

虎照有结果了


周正龙终于要被抓了,整个国民被如此一个农民忽悠,悲哀!也看出中国zf的不作为。

熬夜后选喝的5种果蔬汁

熬夜当天的晚餐多选择蔬菜、水果等清淡的食物,对熬夜时的健康有帮助。

  1. 适量的苹果、胡萝卜、菠菜和芹菜切成小块,加入牛奶、蜂蜜、少许冰块,用果汁机打碎,制成营养完全而且丰富的果蔬汁。
  2. 香蕉、木瓜和优质酸奶放在一起打碎,营养丰富而且能够补充身体所需的很多能量。
  3. 两个猕猴桃、四个橙子、一个柠檬所组成的新鲜果汁中含有丰富的维生素C,补充体能而且美容。
  4. 三个柚子剥皮后榨汁,一串葡萄打碎成葡萄汁,再加上两汤匙蜂蜜,酸酸甜甜别有滋味。
  5. 一根新鲜黄瓜、1/2升豆浆、三片薄荷,一同打碎搅拌后制成清凉的黄瓜汁,消暑又解乏。

你可以为这世界付出更多

学友好听的新歌,而且非常有意义

你可以为这世界付出更多
(凤凰卫视《海若心出发》主题歌曲)

演唱:学友

尝过绝望 你才知道
什么叫做希望

熬过黑夜
你会更欣赏太阳

学会幸福不是必然
睁开眼睛看

若听到苦痛的呼唤
哪可袖手旁观

你可以为这世界付出更多
能够帮助别人你会更快乐

非求福 和赞美
你会有更美好的收获

究竟你会为这世界做些什么
能够温暖别人的心最快乐

Linux关于TOP命令

Linux一般查看应用进程cpu或mem占用情况用pstop两个命令,但ps(ps -aux或ps -tax)只提供系统进程过去一段时间的一次性快照,要获得系统实时信息就需要用top命令了。
top命令输出:
top - 01:50:44 up 23 days, 14:52, 14 users, load average: 0.00, 0.00, 0.02
Tasks: 171 total, 1 running, 163 sleeping, 1 stopped, 6 zombie
Cpu(s): 3.5%us, 4.4%sy, 0.0%ni, 91.3%id, 0.1%wa, 0.0%hi, 0.7%si, 0.0%st
Mem: 2074988k total, 1666204k used, 408784k free, 287252k buffers
Swap: 4194296k total, 176748k used, 4017548k free, 1021808k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 2112 260 232 S 0 0.0 0:11.78 init
2 root 15 -5 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root RT -5 0 0 0 S 0 0.0 0:00.72 migration/0
4 root 15 -5 0 0 0 S 0 0.0 0:04.70 ksoftirqd/0
5 root RT -5 0 0 0 S 0 0.0 0:00.11 watchdog/0

这里我主要讲top命令的内存mem的查看方法,top输出的VIRT列出了每个进程分配的虚拟内存,RES列出了驻留集内存,这个两个数字都包括了像库这样的共享资源,不准确。DATA列里则是更直接的实际内存值,要显示DATA列,需在执行top之后键入f,再从列表中选择DATA,DATA值就是每个进程数据和堆栈占用的内存量,因此这个值更准确。
带DATA列的输出:
top - 01:52:13 up 23 days, 14:53, 15 users, load average: 0.20, 0.05, 0.03
Tasks: 173 total, 1 running, 165 sleeping, 1 stopped, 6 zombie
Cpu(s): 0.3%us, 0.5%sy, 0.0%ni, 98.8%id, 0.3%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2074988k total, 1666836k used, 408152k free, 287256k buffers
Swap: 4194296k total, 176748k used, 4017548k free, 1021860k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ DATA COMMAND
31542 hobbes 20 0 5900 1936 1456 R 0 0.1 0:00.02 700 top
1 root 20 0 2112 260 232 S 0 0.0 0:11.78 240 init
2 root 15 -5 0 0 0 S 0 0.0 0:00.00 0 kthreadd

献给汶川地震中死难的孩子

让人感动得哭的一首诗!

天堂路上的母子对话 

――献给地震中死难的孩子 
 孩子 
快抓紧妈妈的手
去天堂的路
太黑了
妈妈怕你
碰了头
快抓紧妈妈的手
让妈妈陪你走

妈妈
我怕
天堂的路
太黑
我看不见你的手
自从
倒塌的墙
把阳光夺走
我再也看不见
你柔情的眸

孩子
你走吧
前面的路
再也没有忧愁
没有读不完的课本
和爸爸的拳头
你要记住
我和爸爸的模样
来生还要一起走

妈妈
别担忧
天堂的路有些挤
有很多同学朋友
我们说
不哭
哪一个人的妈妈都是我们的妈妈
哪一个孩子都是妈妈的孩子
没有我的日子
你把爱给活的孩子吧
妈妈
你别哭
泪光照亮不了
我们的路
让我们自己
慢慢的走
妈妈
我会记住你和爸爸的模样
记住我们的约定
来生一起走------

(注:这首诗是我在新浪网上看到的,作者不详)

深圳红树林


去年在深圳红树林同学聚会时照的,风景很不错的地方,临海!
Posted by Picasa