监控判断响应时间大于x的:
tail -f /data/nginx/logs/www_xxx_com.log|awk -F ':' '{ if ($NF > 0.5) print $0}'
MySQL 查看数据库跑的SQL:
usr/local/mysql/bin/mysql -u user -h127.0.0.1 -p password -e "show processlist;"
usr/local/mysql/bin/mysql -u user -h127.0.0.1 -p password -e "show full processlist;"
MySQL 数据库跑满时,抽语句进行SQL 清除(紧急情况使用):
/usr/local/mysql/bin/mysql -u user -p'password' -h 127.0.0.1 -e 'show processlist' |sed '1d' | grep -i 'select' | awk '{print $1}' |xargs -i{} /usr/local/mysql/bin/mysql -u user -p'password' -h 127.0.0.1 -e "kill {}"
查看与本机连接的IP及其流量的命令:
(如果你的服务器流量跑满了,你却不知道怎么看是谁在搞你,想要把它干掉,那么你可以试试这个命令 - . -)
iftop
进程内存分布:
pmap pid
进程实时监控:
pidstat
指定采样周期和采样次数
pidstat命令指定采样周期和采样次数,命令形式为”pidstat [option] interval [count]”,以下pidstat输出以2秒为采样周期,输出10次
cpu使用统计信息:
pidstat 2 10
cpu使用情况统计(-u)
使用-u选项,pidstat将显示各活动进程的cpu使用统计,执行”pidstat -u”与单独执行”pidstat”的效果一样。
内存使用情况统计(-r)
使用-r选项,pidstat将显示各活动进程的内存使用统计:
内存输出参数含义:
minflt/s: 每秒次缺页错误次数(minor page faults),次缺页错误次数意即虚拟内存地址映射成物理内存地址产生的page fault次数
majflt/s: 每秒主缺页错误次数(major page faults),当虚拟内存地址映射成物理内存地址时,相应的page在swap中,这样的page fault为major page fault,一般在内存使用紧张时产生
VSZ: 该进程使用的虚拟内存(以kB为单位)
RSS: 该进程使用的物理内存(以kB为单位)
%MEM: 该进程使用内存的百分比
Command: 拉起进程对应的命令
IO情况统计(-d)
使用-d选项,我们可以查看进程IO的统计信息:
输出含义:
kB_rd/s: 每秒进程从磁盘读取的数据量(以kB为单位)
kB_wr/s: 每秒进程向磁盘写的数据量(以kB为单位)
Command: 拉起进程对应的命令
针对特定进程统计(-p)
使用-p选项,我们可以查看特定进程的系统资源使用情况:
sed指定字符前后插入
sed -i 's/指定的字符/要插入的字符&/' 文件
sed 's/指定的字符/&要插入的字符/' 文件
在每行的头、尾添加字符,
sed -i 's/^/HEAD&/' 文件
sed -i 's/$/&tail/' 文件
-----------------------------------------------------------------------------------------------------------------------------------------
通过nginx日志,查看服务器上活跃的域名并做出统计:
ll -t /data/nginx/logs/* |head -n 10 |awk '{print $NF}' |xargs -i grep -r {} /data/nginx/etc-conf/Includes/* |awk '{print $1}'|sort -n |uniq -c|awk '{print $2}'|awk -F ':' '{print $1}' |xargs -i less {} |grep 'server_name'
**定义动态变量
#!/bin/bash
sum=`grep -v '#' /usr/local/tomcat/conf/server.xml |grep -n 'protocol="HTTP/1.1"' |awk -F ':' '{print $1}'`
for i in $sum
do
declare sum_$i=$i
done
echo $sum_71
echo $sum_77
grep 无缓存输出:
grep --line-buffered
清除cache:
在系统中除了内存将被耗尽的时候可以清缓存以外,我们还可以使用下面这个文件来人工触发缓存清除的操作,方法是:修改/proc/sys/vm/drop_caches文件。
这个文件可以设置的值分别为1、2、3。它们所表示的含义为:
echo 1 > /proc/sys/vm/drop_caches #表示清除pagecache。
echo 2 > /proc/sys/vm/drop_caches #表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。
echo 3 > /proc/sys/vm/drop_caches #表示清除pagecache和slab分配器中的缓存对象。
另外有几种情况不会被此方法收回内存:
1.tmpfs
2.共享内存
(清除共享内存方法:)
[root@tencent64 ~]# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00005feb 0 root 666 12000 4
0x00005fe7 32769 root 666 524288 2
0x00005fe8 65538 root 666 2097152 2
0x00038c0e 131075 root 777 2072 1
0x00038c14 163844 root 777 5603392 0
0x00038c09 196613 root 777 221248 0
0x00000000 294918 root 600 2145386496 0
[root@tencent64 ~]# ipcrm -m 294918
[root@tencent64 ~]# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00005feb 0 root 666 12000 4
0x00005fe7 32769 root 666 524288 2
0x00005fe8 65538 root 666 2097152 2
0x00038c0e 131075 root 777 2072 1
0x00038c14 163844 root 777 5603392 0
0x00038c09 196613 root 777 221248 0
[root@tencent64 ~]# free -g
total used free shared buffers cached
Mem: 126 30 95 0 0 16
-/+ buffers/cache: 14 111
Swap: 2 0 2
3.mmap
CPU启动隔离
/etc/default/grub
中断绑定