作者:linux120
发布时间:November 30, 2012
分类:服务器维护
判断Linux服务器CPU的依据如下:
具有相同core id的CPU是同一个core的超线程
具有相同physical id的CPU是同一个CPU封装的县城或核心
物理cpu个数如下所示:
[root@linux120.com]#grep "physical id" /proc/cpuinfo | sort | uniq | wc -l
2
每个物理CPU中core的个数如下所示:
[root@linux120.com]#grep "cpu cores" /proc/cpuinfo | uniq
cpu cores :1
逻辑CPU的个数如下所示:
[root@linux120.com]#grep "processor" /proc/cpuinfo | wc -l
4
作者:linux120
发布时间:November 30, 2012
分类:服务器维护
客户邮局系统要替换的机器,当晚做了rsync同步,早上检查发现已同步完成,直觉告诉我应是有问题的,不可能这么快,查看总共才同步300多G。
查看日记发现大量错误信息(Permission denied ),如下。根据提示应该是权限不足导致的。继续进一步的检查发现原来是配置文件,增加uid = vmail。
该选项指定当该模块传输文件时守护进程应该具有的uid。再测试同步正常~
rsync: send_files failed to open "b/bxxxxx.com/1/1/.201107/cur/1311208253.M550934P15909V0000000000000811I00000000158482F8_0.mail.umail32.xxxx.com,S=291295:2,S" (in backup): Permission denied (13)
作者:linux120
发布时间:November 29, 2012
分类:服务器维护
事务处理时经常会有用户反馈网站(php+mysql)访问非常慢,有些其实是服务器上某些运行比较慢的sql语句引起的过度资源占用。
我们可以通过mysqldumpslow分析下慢查询的日志。默认的慢查询日志并没有开启,因为开启该功能相应的也会占用服务器一定资源,一般是在分析时开启分析完后就关闭了或让该功能定期运行下。开启该功能需要在my.cnf配置文件中加入:
long_query_time = 1 #查询时间为多少时被记录下来,单位为秒。
log-slow-queries = /usr/local/mysql/var/slow.log #被记录下来的日志存放的路径。
log-queries-not-using-indexes #记录下没有使用索引的sql查询。
保存重启下服务。
然后执行命令分析下日志:
mysqldumpslow -s c -t 10 slow.log
s参数就是按照某一种顺序Order。c参数为查询query的次数,t n参数即top n前面的n条数据。
s后可加的参数还有:c,t,l,r和ac,at,al,ar,分别表示query的次数,返回top n条的数据,lock的时间,return的记录数。参数前加“a”表示倒序过来。
命令返回信息类似于:
Count: 3888 Time=0.00s (0s) Lock=0.00s (0s) Rows=1.0 (3969),
lovhome1[lovhome1]@localhost
select id,name from goods_class where class_id=N order by order_id desc,id desc limit N,N
该方法可以查找出query慢的用户,可以关闭它,以免影响其他用户的正常资源使用,保证服务器的稳定运行。
作者: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
作者: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;
}
}