为什么编译安装Mysql性能还是不济?

作者:linux120 发布时间:December 5, 2012 分类:服务器配置

Mysql数据库生产环境下一般都是采用编译安装,这样性能会有较大的提升,但是源码包默认的编译参数会以debug模式生成二进制代码,该模式给mysql带来的性能损失比较大,所以一定要使用--without-debug参数。
如果把--with-mysqld-ldflags和--with-client-ldflagsliangge canshu shezhi wei --all-static的话,就是使用静态方式编译mysql,此时的性能最高,相比动态链接库要提高10%左右。
所以,建议大家在编译的时候使用--without-debug和--all-static参数。

Linux使用Iptables防范半连接攻击

作者:linux120 发布时间:November 27, 2012 分类:服务器配置

#!/bin/bash

/sbin/modprobe ip_tables

/sbin/modprobe ip_conntrack

/sbin/modprobe ip_conntrack_ftp

rm /root/.dyn*

echo "Setting kernel tcp parameters to reduct DoS effects"

#Reduce DoS'ing ability by reducing timeouts

echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout

echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time

echo 1 > /proc/sys/net/ipv4/tcp_window_scaling

echo 0 > /proc/sys/net/ipv4/tcp_sack

echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog

#ANTISPOOFING

for a in /proc/sys/net/ipv4/conf/*/rp_filter;

do

echo 1 > $a

done

##

#NO SOURCE ROUTE

for z in /proc/sys/net/ipv4/conf/*/accept_source_route;

do

echo 0 > $z

done

#SYN COOKIES

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#echo $ICMP_ECHOREPLY_RATE > /proc/sys/net/ipv4/icmp_echoreply_rate

echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

echo "1" > /proc/sys/net/ipv4/conf/all/accept_redirects

echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

# NUMBER OF CONNECTIONS TO TRACK

echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max

# Set default policies

/sbin/iptables -P INPUT ACCEPT

/sbin/iptables -P OUTPUT ACCEPT

/sbin/iptables -P FORWARD DROP

/sbin/iptables -F

/sbin/iptables -F INPUT

/sbin/iptables -F OUTPUT

/sbin/iptables -F FORWARD

/sbin/iptables -F -t mangle

/sbin/iptables -X

/sbin/iptables -A INPUT -i lo -j ACCEPT

/sbin/iptables -A INPUT -d 127.0.0.0/8 -j REJECT

/sbin/iptables -A INPUT -i eth0 -j ACCEPT

/sbin/iptables -A INPUT -m state --state INVALID -j DROP

### chains to DROP too many SYN-s ######

/sbin/iptables -N syn-flood

/sbin/iptables -A syn-flood -m limit --limit 100/second --limit-burst 150 -j RETURN

/sbin/iptables -A syn-flood -j LOG --log-prefix "SYN flood: "

/sbin/iptables -A syn-flood -j DROP

Nginx简单web方向代理

作者:linux120 发布时间:November 27, 2012 分类:服务器配置

server
{
listen 80;
server_name proxy.linux120.com twitter.com www.twitter.com;

location / {
proxy_pass http://twitter.com/;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

计算Mysql数据库空间占用

作者:linux120 发布时间:November 27, 2012 分类:服务器配置

检查数据库占用
SELECT table_schema "Database Name", sum( data_length + index_length) / 1024 / 1024
"Database Size(MB)" FROM information_schema.TABLES GROUP BY table_schema ;

检查库表空间占用
SELECT table_name, table_rows, data_length, index_length, round(((data_length + index_length) / 1024 / 1024),2) "Size(MB)" FROM information_schema.TABLES WHERE table_schema = "movies";

提高PHP编程效率的20招

作者:linux120 发布时间:November 26, 2012 分类:服务器配置

1、用单引号代替双引号来包含字符串。
2、$row['id']要比$row[id]快。
3、echo 比 print快,使用逗号来拼接。
4、foreach效率要比while\for要高。
5、for循环前就要确认最大循环数。
6、注销已经不用的变量特别是大数组。
7、尽量不使用_get,_set,_autoload
8、include()尽量使用绝对路径。
9、使用SERVER['REQUEST_TIME']要优于time()。
10、尽量应用PHP函数来完成,能用函数完成的就不要使用正则表达式。
11、strtr >> str_replace >> preg_replace
12、switch >> many if~else staments.
13、不要使用@来屏蔽错误,效率太低。
14、开启mod_deflate模块。
15、不要使用pconnect,用完后关闭连接。
16、类如果能static尽量static.
17、引入apc\ea\xcache等PHP OPCODE缓存。
18、使用!isset($strings['5'])来替代strlen($strings)<5.
19、++$i > $i++
20、file_get_contents >>> file/fopen/feof/fgets