Skip to content


优化web服务器tcp半连接

在繁忙的web服务器上,很常见的问题是大量tcp 半连接的存在占用系统的大量资源。有效的减少半连接对优化服务器响应有着重要的作用。
实践步骤:

1。执行 /bin/netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
2。vi /etc/sysctl.conf 添加如下两行:

1)net.ipv4.tcp_tw_reuse = 1 //允许将TIME-WAIT sockets重新用于新的TCP连接
2)net.ipv4.tcp_tw_recycle = 1 //开启TCP连接中TIME-WAIT sockets的快速回收


3。运行sysctl -p
Continued…

Posted in Web开发, linux.

Tagged with , .


db file sys params

1. noatime option mount
2.ext3 ? mke2fs -j -m1
3. tune2fs -c 0 -i 0

Posted in linux, mysql.

Tagged with .


nginx静态压缩(ngx_http_gzip_static_module)

在搭建squid网页加速的时候,对于大的css 或者js要进行压缩,然后再进行缓存,这样能够提高减小下载量提高页面响应速度。如果你用的是squid 3.0以前的版本并且用的是 ngnix server的话可能会碰到如下问题: 不用squid直接打开页面则客户端返回的是压缩的状态,如果启用squid加速会发现下载下来的页面不是压缩状态。这里面主要是没有启动ngnix 的静态缓存模块(ngx_http_gzip_static_module)导致。打开静态缓存问题就解决了
1.nginx编译选项
./configure --with-http_gzip_static_module
2.修改nginx.conf

gzip_static on;

gzip_http_version 1.1;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6] \.”;
gzip_vary on;

参考:
1.http://wiki.nginx.org/NginxHttpGzipStaticModule
2.http://bbs.chinaunix.net/viewthread.php?tid=1329820

Posted in Web开发, nginx, 技术.

Tagged with , .


innodb_log_file_size的一个问题

备份一份mysql的数据到别的机器上的做法最简单的方案是先把运行的mysql关闭,然后把data目录下面的数据copy到别的机器上的mysql data文件夹下面去然后启动两边的mysql做主从备份。

如果数据库中有存在innodb表的话要注意innodb_log_file_size的问题。可能新的mysql启动会报这个错误

090225 23:50:08 [ERROR] /opt/lamp/apps/mysql/libexec/mysqld: Incorrect information in file: ‘./user/actor.frm’

主要是由于 原来的innodb_log_file_size新的参数不一致导致的。把这个参数改成原来的大小就OK了,当然还有其它的更好解决方案:
参考:
1.http://dev.mysql.com/doc/refman/5.0/en/adding-and-removing.html
2.http://qroom.blogspot.com/2007/03/incorrect-information-in-file.html

由于参考2文档需要要翻墙,把部分内容摘下:
=================
更改了innodb的日志文件大小,即innodb_log_file_size的值,重启mysql之后对innodb的表都会报错:[ERROR] /usr/local/mysql/bin/mysqld: Incorrect information in file: ‘./a/b.frm’。解决办法是修改其值后把日志文件ib_logfile删掉再启动mysql(请注意备份)。

注:删log之前确保innodb_fast_shutdown的值不是2,如果是2则需要先改为1,然后重启使之生效,再关闭mysql删log文件。其默认值是1。
=================

Posted in mysql, 技术.

Tagged with , .


mysqlreport

要掌握数据库状态,并了解其不足,然后作出一份详细可靠的优化方案,必须对数据库的各个参数进行量化的了解比如cache用了多,数据每秒有多少请求,select与insert的比例各占多少等。对mysql而言最简单的方案是直接show status,不过这些数据十分晦涩枯燥,不容易理解。mysqlreport的报表则易懂得多.
mysqlreport提供了几乎所有的mysql的关键status信息,而且对这些数据做了加工处理理解起来十分的方便。
参考文档:

1.http://hackmysql.com/mysqlreportguide
2.http://hi.baidu.com/xuwanbest/blog/item/f3f8fca1df8e2788461064fe.html

只有亲试之,才会体会其中的妙处

部分结果:

mysqlreport

Posted in mysql, tools, 技术.

Tagged with , .


mysqldumpslow 参数

-s ORDER what to sort by (t, at, l, al, r, ar etc), ‘at’ is default
t: 查询花费时间   l: lock时间    r: 返回的记录数  所有前面的a表示倒序

-r  按输出结果倒序排列

-a  不把字查询字符串与数据改成S,N

-t NUM just show the top n queries
显示前面几条

-g PATTERN grep: only consider stmts that include this string后边可以写一个正则匹配模式,大小写不敏感的

-l           don’t subtract lock time from total time不要在总时间里面把lock的时候减去

例子: mysqldumpslow -s r -t 20 mysql-slow.log   返回记录集最多的20个sql。

Posted in mysql, 技术.

Tagged with , .


注意nfs server文件权限设置问题

搭建一个nfs server 是一个较为容易的。不过访问权限问题让我头疼了好长一段时间。我在server端共享一个文件夹并且在/etc/exports 设置目标访问机器的权限为可读写,访问机器用读写权限mount后,还是没有没有读写权限。随后分别检查了server端的文件夹属性以及客户端属性,发现owner 不是同一个用户。于是查询了/etc/passwd文件发现:
1.对于分享的文件夹来说owner的ID是由server端决定的
就是说如果在server机器上owner的Id:1000   ,name: myservername. 在client也有一个用户ID:1000   , name: myclientname 那么在client机器上显示 owner就是myclientname.  那么你在client用myclientname这个用户访问就会拥有server端owner的所有权限。

2.client上的其它不同ID的用户如果访问这个共享文件夹,将会被服务器看成是匿名访问。当然就没有读写以及执行权限。 Continued…

Posted in linux, 技术.

Tagged with .


windows远程登录的小技巧

windows自带的远程登录工具为远程控制机器提供的便利,你是否为本地机器与远程机器的文件传输烦恼呢?至少刚开始用远程连接工具的时候费了不少的劲。最终用局域网共享文件目录解决了问题,但是比起下面的方法来说还是不够直接

哈哈   欲善其事,先利其器!

1.打开远程登录界面之后,打开“选项”开关

2.选择”本地资源“—>详细信息

remote_1

Continued…

Posted in tools, 技术.

Tagged with , .


mysql存储引擎选择

每每建表自问:  用 MyISAM好呢,还是 InnoDB?N多次都是无解

各种存储引擎都有自己的优点。做出什么样的选择,在于你自己的需求

pluggable-storage-choosing

这下好了,所有的选择按这个来吧!

Posted in mysql.

Tagged with , , .


rsync数据同步利器

对于系统运维人员来说rsync 应该是工具箱中的一个常用工具,其稳定,便捷,高效的特性一直为人所称道.rsync一般会配合cron工作,cron定时自动完成系统数据同步工作。

1.决定使用哪种传输协议?

在默认条件下,rsync可以用RSH协议与远程系统进行通信。通过调整参数还可以用SSH协议,这样就可利用所有的标准SSH认证方法,并实现加密的文件传输。建议用ssh协议

2.基本应用

试验rsync的时候应该非常小心,因为很可能一不小心就将大量数据发送到它们本不该出现的地方。 verbose(-v)与dry-run(-n)在你试验的时候将会十分的有用,verbose能让你看到修改的结果,dry-run就是不对文件进行真正的修改主,只产生结果信息。

注意: 文件夹参数后面有/与没有/的区别。如果源目录有/表示当前目录下的所有文件 ,如果没有/表示当前文件夹也包括其中

-a:  以归档的模式进行操作,这将导致rsync以递归方式运行,并保留权限,所有权,符号链接,设备文件,访问时间等信息,等同于: -rlptgoD先项的作用
Continued…

Posted in linux, tools.

Tagged with , .