sysdig应用实例

好记性不如烂笔头,测了一下sysdig。确实不错。。有了这个神器。。可以更快速的定位瓶颈所在。

1. sysdig -c topprocs_cpu
查看哪个进程占用的CPU最多。。其实就相当于top
2. sysdig -c topprocs_net
查看哪个进程占用的网络带宽最大。。
3. sysdig -c topprocs_file
查看哪个进程对文件读写操作最多
4. sysdig -c topfiles_bytes
查看哪个文件的读写操作最多
sysdig -c topfiles_bytes proc.name=php-fpm
php-fpm进程的文件读写操作
5. sysdig -c topconns
查看本机和哪个IP的连接占用的带宽最大
6. sysdig -c fdbytes_by fd.sport
查看哪个端口占用的带宽大

7. sysdig -c fdbytes_by fd.cip
哪个ip占用我的带宽最大

8. sysdig -A -c echo_fds fd.sip=数据库的ip and proc.name=php-fpm and evt.buffer contains SELECT|grep -i select
查看所有的数据库查询语句
sysdig -A -c echo_fds fd.sip=数据库的ip and proc.name=php-fpm and evt.buffer contains INSERT|grep -i insert
查看所有的数据库插入语句
9. sysdig -c topfiles_bytes fd.name contains ‘hackers365.com.access’
查看日志写入占用的文件io带宽

10. sysdig -c spy_users
查看用户执行的shell命令

11. sysdig -c fdbytes_by fd.directory “fd.type=file”
查看哪个目录的读写最多

12.sysdig -c fdbytes_by fd.type
根据文件描述符类型来显示读写的带宽

原来地球上有这么多数据库啊

1010data
4store
Accumulo
Adabas
Aerospike
Akiban
Algebraix
AllegroGraph
Altibase
Amisa Server
ArangoDB
Bangdb
BaseX
Berkeley DB
BrightstarDB
c-treeACE
Caché
Cassandra
Cloudant
CloudKit
CloudSearch
Clusterpoint
Clustrix
CodernityDB
Coherence
Compass
Couchbase
CouchDB
CubicWeb
Cubrid
D3
DataEase
Datameer
Dataupia
DB2
Db4o
dBASE
DensoDB
Derby
Djondb
Drizzle
Dydra
DynamoDB
Ehcache
EJDB
Elasticsearch
Eloquera
Endeca
EnterpriseDB
Event Store
Exasol
eXist-db
Exorbyte
eXtremeDB
FileMaker
Firebird
FleetDB
FlockDB
FoundationDB
FrontBase
GemFire
GemStone/S
GenieDB
Giraph
GlobalsDB
Google BigQuery
Google Cloud Datastore
Google Search Appliance
GraphBase
Greenplum
GridGain
GT.M
H2
Hadapt
Hamsterdb
Hazelcast
HBase
Hibari
Hive
HyperDex
HyperGraphDB
HyperSQL
Hypertable
IDMS
Impala
IMS
Indica
InfiniDB
Infinispan
InfiniteGraph
InfluxDB
Infobright
InfoGrid
Informix
Ingres
Interbase
ITTIA
Jackrabbit
Jade
JasDB
jBASE
Jena
JethroData
JustOneDB
Kdb+
Kognitio
Kyoto Cabinet
Kyoto Tycoon
LevelDB
LightCloud
LucidDB
MapDB
MariaDB
MarkLogic
MaxDB
Memcached
MemSQL
Microsoft Access
Microsoft Azure DocumentDB
Microsoft Azure SQL Database
Microsoft SQL Server
Mimer SQL
Mnesia
Model 204
ModeShape
MonetDB
MongoDB
mSQL
Mulgara
MySQL
Nanolat
NCache
Neo4j
Netezza
NEventStore
NexusDB
NonStop SQL
Northgate Reality
NuoDB
ObjectDB
Objectivity/DB
ObjectStore
OpenBase
OpenEdge
OpenQM
Oracle
Oracle NoSQL
OrientDB
OWLIM
ParAccel
Percona Server
Perst
Pervasive PSQL
Postgres-XL
PostgreSQL
Project Voldemort
R:BASE
RaptorDB
Rasdaman
RavenDB
Red Brick
Redis
Redland
Redshift
RedStore
Resin Cache
RethinkDB
Riak
RocksDB
SAP HANA
Scalaris
ScaleBase
ScaleDB
ScaleOut StateServer
SciDB
ScimoreDB
SearchBlox
Sedna
SenseiDB
Sequoiadb
Sesame
Siaqodb
SimpleDB
SisoDb
SmallSQL
solidDB
Solr
SparkleDB
Sparksee
Sphinx
Splice Machine
Splunk
SQL Anywhere
SQLite
Sqrrl
Srch²
Starcounter
Stardog
Strabon
STSdb
Sybase ADS
Sybase ASE
Sybase IQ
Tajo
Tamino
Tarantool
Teradata
Teradata Aster
Terrastore
TimesTen
Titan
TokuDB
TokuMX
Tokyo Cabinet
Tokyo Tyrant
TomP2P
TransLattice
UniData,UniVerse
Vectorwise
VelocityDB
Versant FastObjects
Versant Object Database
Vertica
Virtuoso
VistaDB
VoltDB
WakandaDB
WebScaleSQL
WebSphere eXtreme Scale
XAP
Xapian
XtremeData
ZODB

ssh vpn速度测试

1. 这是无任何加密

root@hackers365-HP-Compaq-Elite-8300-SFF:~# wget 'http://hackers365.com/sh/20141001.tar.gz'
--2014-10-21 11:12:31--  http://hackers365.com/sh/20141001.tar.gz
正在解析主机 hackers365.com (hackers365.com)... 115.126.45.3
正在连接 hackers365.com (hackers365.com)|115.126.45.3|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 30600937 (29M) [application/octet-stream]
正在保存至: “20141001.tar.gz”

100%[===================================================================================================================================================================================================>] 30,600,937   366K/s   用时 83s   

2014-10-21 11:13:55 (358 KB/s) - 已保存 “20141001.tar.gz” [30600937/30600937])

2. 这是使用scp传输的速度测试结果

root@hackers365-HP-Compaq-Elite-8300-SFF:~# time scp hk_vps:/tmp/20141001.tar.gz /tmp
20141001.tar.gz                                                                                                                                                                                            100%   29MB 360.0KB/s   01:23    

real	1m25.147s
user	0m0.808s
sys	0m0.456s

3. 这是基于ssh的vpn的scp速度测试

root@hackers365-HP-Compaq-Elite-8300-SFF:~# time scp  192.168.200.1:/tmp/20141001.tar.gz /tmp
The authenticity of host '[192.168.200.1]:8045 ([192.168.200.1]:8045)' can't be established.
RSA key fingerprint is 20:be:7b:68:99:b3:b2:db:52:a5:97:65:be:7c:d8:11.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.200.1]:8045' (RSA) to the list of known hosts.
20141001.tar.gz                                                                                                                                                                                            100%   29MB 332.0KB/s   01:30    

real	1m33.664s
user	0m0.712s
sys	0m0.456s

4. 基于ssh的vpn下的http下载速度测试

root@hackers365-HP-Compaq-Elite-8300-SFF:~# wget 'http://192.168.200.1/sh/20141001.tar.gz'
--2014-10-21 11:24:29--  http://192.168.200.1/sh/20141001.tar.gz
正在连接 192.168.200.1:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 30600937 (29M) [application/octet-stream]
正在保存至: “20141001.tar.gz.1”

100%[===================================================================================================================================================================================================>] 30,600,937   336K/s   用时 91s   

2014-10-21 11:26:01 (330 KB/s) - 已保存 “20141001.tar.gz.1” [30600937/30600937])

总结:

类型 结果
不加密 83s
scp 85s
vpn下的scp 93s
vpn下的http 91s

基于ssh的vpn服务

现在我有几台linux机器。
1. 家里放着的raspberry pi
2. 家里放着两个基于openwrt的路由器
3. 花了90块钱一年的美国vps
4. 笔记本
5. 公司的台式机
6. 香港的vps
我想把它们连到同一个vpn中。挑中香港的vps当做server。搭一个vpn服务器。openvpn。。。但是连不上。总被reset掉。。应该是可恶的墙吧。。

网上搜寻了一阵。发现ssh也可以做vpn。。。正题开始。基于ssh。把香港的vps当做服务器。架构vpn

1. ssh免密码登陆
打开 ~/.ssh/config

Host hk_vps
    HostName hackers365.com
    User hackers365
    Port 8045
    identityfile ~/.ssh/id_rsa

注意,这里不能登陆远程的root用户。只能使用普通用户
# ssh-keygen
# ssh-copy-id hk_vps

2. 服务器/客户端上安装安装uml-utilities和bridge-utils(客户端不必要安装这个包)

apt-get install uml-utilities bridge-utils

3. 服务器上创建一个网桥,10个虚拟网卡并将虚拟网卡加入网桥中,脚本如下:

#!/bin/bash
s="0 1 2 3 4 5 6 7 8 9"

/usr/sbin/brctl addbr br0

for i in $s;do
	/usr/sbin/tunctl -u hackers365 -t tap${i}
	/usr/sbin/brctl addif br0 tap${i}
done

/sbin/ifconfig br0 192.168.200.1 netmask 255.255.255.0 up

配置网桥的ip为192.168.200.1,其中的’-u hackers365’是第一步中免密码登陆的用户

4. 配置服务器端sshd_config

打开

PermitTunnel yes

重启sshd服务
/etc/init.d/sshd restart

5. 服务器端配置dhcp服务器(此步非必要)
这里使用的是dnsmasq的dhcp服务,主要配置如下:

listen-address=192.168.200.1,127.0.0.1
dhcp-range=192.168.200.50,192.168.200.150,12h
dhcp-host=ba:7d:f7:9f:4e:66,192.168.200.200
dhcp-host=2a:64:52:89:29:34,192.168.200.201
dhcp-host=26:a5:7a:c2:30:59,192.168.200.202

其中的192.168.200.1中服务器上br0的网卡地址
dhcp-host是根据客户端mac来分配的固定ip

6. 客户端配置虚拟网卡

#!/bin/bash
/usr/bin/autossh -M 10000 -CfNg -o Tunnel=ethernet -w 0:0 hk_vps
/usr/sbin/tunctl -t tap0
/sbin/ifconfig tap0 down
/sbin/ifconfig tap0 hw ether 26:a5:7a:c2:30:59
sleep 1
/sbin/dhclient tap0
#/sbin/ifconfig tap0 192.168.200.170 netmask 255.255.255.0 up

这个脚本依赖autossh。是为了保证永不断线。。

ssh -o Tunnel=ehternet -w 0:0 hk_vps

这里最关键的就是’-w 0:0’了。如果服务器上没有初始化虚拟网卡。需要保证登陆的用户是root。如果已存在虚拟网卡。需要保证非root登陆并把虚拟网卡的属主改成登陆的用户

第二台客户端需要改变一下-w参数为’-w 0:1’。因为’tap0’已经被第一个客户端占用

好了。执行客户端脚本,然后ping一下192.168.200.1。可以通的话。就配置成功。。如果更进一步。可以使用iptables做nat。。我的需求是建立一个局域网即可。所以nat什么的就不用配了。。