Archive for November, 2008

kernel: ip_conntrack: table full, dropping packet.

解决的办法:

(more…)

Post to Twitter

在 RHEL5 上加载 RTL8111/8168B 网卡驱动并修改 MAC 地址

这件事情应该老早就去做,但是直到最近外界网卡有问题才想到去做,终于成了,在修改 MAC 地址上费了一些周折。

(more…)

Post to Twitter

SCO 的诉讼最终以倒付 Novel 数百万告终

最新的消息:这种事情看起来很可笑,所谓正义最终战胜邪恶。 SCO 当年的“策划”也算美妙了。 这对于那些成天想着用封闭源代码的策略来赚钱的公司而言是个极大的打击,包括微软。 因此,在互联网时代,软件已经完全进入了开放、共享、按服务收费的阶段,而不是按 CPU 数目或者服务器数目收费。

根据环境改变 mindset 是每一家成功的公司必须去做的一件事情。
Final judgment: SCO owes Novell millions (plus interest)

By Ryan Paul | Published: November 24, 2008 – 05:36AM CT

Federal district judge Dale A. Kimball has handed down the final judgment in the SCO case. The decision dismisses SCO’s latest claims, grants declaratory relief to Novell, and sustains the court’s previous judgment that SCO owes Novell over $2.54 million (plus interest) for unjust enrichment.

SCO’s protracted legal shenanigan has been running for roughly five years now. The company originally claimed that it owned the UNIX SVRX copyrights and that incontrovertible evidence had been uncovered that the open source Linux kernel was written using a significant amount of code that was misappropriated from SVRX. In reality, SCO’s own internal audits of Linux source code turned up no evidence of copyright infringement; meanwhile, Novell has turned out to be the rightful owner of the SVRX copyrights.

SCO managed to use its false claims to extract licensing revenue out of companies that were apparently uninterested in contesting its claims. Novell took SCO’s claims to court and eventually triumphed, which pushed SCO off of the precipice and into bankruptcy.

Judge Kimball determined that SCO was subject to a contract with Novell, which it violated by lifting SVRX confidentiality provisions in a licensing agreement with Sun. This move exceeded the authority granted to SCO under the terms of a 1994 asset purchase agreement that enabled SCO to sell limited SVRX licenses to third parties on behalf of Novell. Judge Kimball also determined that SCO breached its fiduciary duty by neglecting to remit the requisite portion of the licensing revenue to Novell.

In addition to the $2,547,817 that SCO was originally ordered to pay to Novell in a previous judgment, SCO will also have to pay $918,122 in prejudgment interest and $489 per day from August 29 until November 20. SCO is in the middle of bankruptcy proceedings and does not presently have the resources to pay the amount in full. A constructive trust has been established with $625,000 of SCO’s remaining resources.

SCO could still theoretically appeal, but it seems unlikely that the dying UNIX vendor can afford to do so. Several of SCO’s attempts to reorganize have failed and a private equity firm that was in negotiations to resurrect SCO has backed away from the deal. SCO’s own management has substantial doubts about the company’s future.

Despite all the legal decisions to the contrary, SCO’s number one man, Darl McBride, has continued to espouse his belief that Linux was built by stealing from UNIX. Regardless of his opinion, SCO’s long battle is finally reaching a very undignified end.

Post to Twitter

用 opendns 加 spamcop.net 实现对垃圾邮件的智能过滤

SpamAssassin
Image via Wikipedia

用 SpamAssassin 来过滤垃圾邮件是一种邮件收到以后的评分技术,然后根据分值,加上 procmail 之类的处理来判断是否丢弃邮件。在检查公司的 DNS 查询记录时发现,Ironport 大量查询类似 75.221.17.116.bl.spamcop.net 的域名地址,去 spamcop.net 查看,原来已经被 Ironport 收编。怪不得!

基于对 Ironport 的信任,决定在自己的 sendmail 服务器上应用这项技术。但是,刚开始时不成功,终于发现是使用的 DNS 服务器无论是电信还是网通的地址都是被劫持,这样的话,所有不能被解析的地址都返回一个固定的 IP ,导致 RBL 认为所有的 IP 都是 RBL 。

(more…)

Post to Twitter

Linux 上禁止 snmpd 日志写入 syslog

修改: /etc/init.d/snmpd
OPTIONS=”-LS 5 d -Lf /dev/null -p /var/run/snmpd”

Post to Twitter

12 个比较有用的 MySQL 配置参数

不错的一个文章,有时间慢慢翻译。

  • Altering Index Buffer Size (key_buffer)

This variable controls the size of the buffer used when handling table indices (both read and write operations). The MySQL manual recommends that this variable be increased to as much as you can afford to ensure you get the best performance on indexed tables, and recommends a value equivalent to about 25 percent of the total system memory. This is one of the more important MySQL configuration variables and if you’re interested in optimizing and improving performance, trying different values for the key_buffer_size variable is a good place to start.

  • Altering Table Buffer Size (read_buffer_size)

When a query requires a table to be scanned sequentially, MySQL allocates a memory buffer to this query. The read_buffer_size variable controls the size of this buffer. If you find that sequential scans are proceeding slowly, you can improve performance by increasing this value, and hence the size of the memory buffer.

  • Setting the Number of Maximum Open Tables (table_cache)

This variable controls the maximum number of tables MySQL can have open at any one time, and thus controls the server’s ability to respond to incoming requests. This variable is closely related to the max_connections variables – increasing this value allows MySQL to keep a larger number of tables open, just as increasing max_connections increases the number of allowed connections. Consider altering this value if you have a high-volume server which receives queries on multiple different databases and tables.

  • Activating the Query Cache (query_cache_type)

MySQL 4.x includes a query cache which can improve query response time by caching the results of frequently-used queries and returning the cached data on subsequent calls to the same query. Whether or not the query cache is used is controlled by the query_cache_type variable, which may be set to ON, OFF or DEMAND. It’s generally a good idea to turn this on, especially if you have large numbers of identical SELECT queries being executed repeatedly on the server.
Tip: You can also use the query_cache_size variable to control the amount of memory allocated to the MySQL query cache. Increase this value for high-volume servers.

  • Setting the Maximum Size Of A Join (max_join_size)

This variable sets the maximum number of rows that a SELECT query should scan when performing a table join. This is useful to catch badly-written queries that might end up scanning millions of rows, thus decreasing the server’s ability to satisfy other requests. Because this variable impacts all queries and users, it should be set only after careful consideration of what constitutes a legal query on your specific system.

  • Setting the Maximum Number of Permitted Connections (max_connections)

This variable controls the maximum number of incoming client connections MySQL can deal with at any one time. If your application is likely to experience large numbers of independent client connections simultaneously, it’s a good idea to increase this value to avoid the “Too many connections” error.

  • Deciding a Time Limit for Long Queries (long_query_time)

MySQL comes with a so-called slow query log, which automatically logs all queries that do not end within a particular time limit. This log is useful to track inefficient or misbehaving queries, and to find targets for optimization algorithms. The long_query_time variable controls this maximum time limit, in seconds.
Tip: To avoid false positives, set this to a relatively higher value on systems that experience heavy load.

  • Altering the Transaction Isolation Level (tx_isolation)

This variable controls the transaction isolation level, or the extent to which concurrent transactions and the changes they make to a table are “visible” to each other. There are four transaction levels in an ACID-compliant transactional RDBMS like MySQL, and you can set MySQL to use any one of them with this variable.
Note: It’s important to remember that this variable controls the global, default transaction level. Individual clients can, of course, override this value on a per-transaction basis if needed.

  • Activating the Binary Log (log_bin)

MySQL’s binary log keeps track of all queries that alter the data in the database. It’s mostly used to efficiently and accurately perform replication operations, and to restore the system to a stable snapshot in the event of a failure or transaction interruption. The log_bin variable enables this log.

  • Auto-Executing SQL Code on Client Connection (init_connect)

This variable can be used to run SQL commands on the server for every client that successfully opens a connection. This variable is usually set to one or more SQL commands, which are executed by the server to perform client-specific initialization.

  • Setting a Timeout for Interactive Connections (interactive_timeout)

This is a particularly useful variable to set if your MySQL server receives numerous requests for interactive use. This variable controls how long the server should wait for activity on an interactive client connection before terminating the connection. Set this to a reasonable value—five minutes is usually fair, although you will want to reduce that if your server has a lot of clients requesting interactive connection.
Tip: You can use the connect_timeout variable to control how long MySQL waits for a client connection to be consummated before terminating it with an error.

  • Setting the Time Zone (system_time_zone)

This variable controls the time zone MySQL uses for all its date/time bookkeeping. It’s important to ensure that this variable is correctly set, as using the wrong time zone can affect the accuracy of values entered into DATE, TIME and TIMESTAMP fields, as well as flaw date arithmetic operations.

Post to Twitter

RTorrent 命令行使用说明

搜索一下网络上关于 rtorrent 的中文说明似乎没有找到,根据原文大致的把命令行操作翻译一下:

(more…)

Post to Twitter

怎样让您的 WordPress 跑得更快

这篇文章介绍了几个提升 WordPress 性能的办法,应该说都是比较有效的。

当然我最看好的是 MySQL 的 Query_Cache 功能。

Post to Twitter