转一位大神的笔记。
linux的性能优化:1、CPU,MEM2、DISK--RAID3、网络相关的外设,网卡linux系统性能分析:top:linux系统的负载,CPU,MEM,SWAP,占用CPU和内存比较的进程,杀死占用性能高的进程。[root@asianux4 ~]# toptop - 22:45:24 up 22:53, 5 users, load average: 0.00, 0.00, 0.00当前的时间,开机时间为22小时53分钟,5个用户在线,linux系统的负载(CPU核数*1),最近1分钟,最近5分钟,最近15分钟。Tasks: 151 total, 1 running, 150 sleeping, 0 stopped, 0 zombie系统已打开的进程总数为151个,1个正在运行,150休眠,0个停止,0个阻塞。Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stCpu1 : 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stCpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%stCpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st按1(123的1)显示CPU的所有核。id,wa: id=100%,wa=0% 表示系统负载非常低。id=0%,wa=100% 表示系统我载非常高。 id=100%,wa=100% 表示CPU压力低,磁盘、网络可能压力高,可能死锁。id=0%,wa=0% 表示CPU压力大,有进程在占用CPU做运算。Mem: 1914488k total, 468192k used, 1446296k free, 73692k buffersSwap: 835576k total, 0k used, 835576k free, 240788k cached物理内存为2G,规划内存为468M左右,剩余内存为1.44G,共享缓存为73M,高速缓存240M。虚拟内存为835M,没有使用,剩余835M。使用内存:高速缓存+共享缓存=320M[root@asianux4 ~]# cat /proc/meminfoMemTotal: 1914488 kBMemFree: 1446568 kBBuffers: 73940 kB 共享缓存Cached: 240792 kB 高速缓存SwapCached: 0 kBActive: 142040 kB 活动缓存Inactive: 196632 kB 非活动缓存Active(anon): 24120 kBInactive(anon): 128 kBActive(file): 117920 kBInactive(file): 196504 kBUnevictable: 0 kBL(小写) 显示或关闭linux系统负载行t 显示或关闭进程和CPU行。m 显示或关闭内存行。1 显示或关闭多核CPU显示。z 显示或关闭颜色b 显示或关闭高负载的进程。k 杀死进程r 调整进程的优先级,默认优先级为0, 20~-19 -19优先级最高。h 查看帮助。sar 显示CPU的性能,磁盘,页面,IO的信息。[root@asianux4 ~]# sar 1 10[root@asianux4 ~]# sar 1 10Linux 2.6.32-431.20.3.el6.x86_64 (asianux4) 2015年09月18日 _x86_64_ (4 CPU)23时14分13秒 CPU %user %nice %system %iowait %steal %idle23时14分14秒 all 0.00 0.00 0.25 0.00 0.00 99.7523时14分15秒 all 0.00 0.00 0.00 0.00 0.00 100.0023时14分16秒 all 0.00 0.00 0.25 0.00 0.00 99.7523时14分17秒 all 0.00 0.00 0.00 0.00 0.00 100.0023时14分18秒 all 0.00 0.00 0.25 0.00 0.00 99.7523时14分19秒 all 0.00 0.00 0.00 0.00 0.00 100.0023时14分20秒 all 0.00 0.00 0.00 0.00 0.00 100.0023时14分21秒 all 0.00 0.00 0.25 0.00 0.00 99.7523时14分22秒 all 0.00 0.00 0.00 0.00 0.00 100.0023时14分23秒 all 0.00 0.00 0.00 0.00 0.00 100.00平均时间: all 0.00 0.00 0.10 0.00 0.00 99.9023时20分35秒 CPU %user %nice %system %iowait %steal %idle23时20分36秒 all 0.00 0.00 11.95 0.00 0.00 88.0523时20分38秒 all 0.00 0.00 32.70 3.77 0.00 63.5223时20分39秒 all 0.00 0.00 23.08 38.06 0.00 38.8723时20分40秒 all 0.00 0.00 7.02 26.32 0.00 66.6723时20分41秒 all 0.00 0.00 10.81 40.54 0.00 48.6523时20分42秒 all 0.00 0.00 20.49 42.62 0.00 36.89[root@asianux4 ~]# sar -d 1 每秒扫描一次。23时23分07秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util23时23分08秒 dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0023时23分08秒 dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0023时23分08秒 dev8-0 256.45 65651.61 0.00 256.00 2.60 10.16 6.18 158.3923时23分08秒 dev8-32 143.55 12.90 102812.90 716.31 3.53 24.60 10.57 151.7723时23分08秒 dev8-64 109.68 0.00 101161.29 922.35 3.07 25.90 14.74 161.6123时23分08秒 dev8-80 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0023时23分08秒 dev8-48 108.06 0.00 101161.29 936.12 2.86 24.33 13.60 146.9423时23分08秒 dev253-0 254.84 65238.71 0.00 256.00 2.59 10.18 6.21 158.2323时23分08秒 dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0023时23分08秒 dev9-0 24879.03 12.90 199019.35 8.00 0.00 0.00 0.00 0.0023时23分08秒 dev253-2 24879.03 12.90 199019.35 8.00 829.52 28.60 0.07 175.0023时23分08秒 dev253-3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00vmstat 显示虚拟内存的状况。[root@asianux4 ~]# vmstat 1procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 77268 21360 1652176 0 0 4 6 4 5 0 0 100 0 0 1 0 0 77260 21360 1652192 0 0 0 0 20 19 0 0 100 0 0 0 0 0 77244 21368 1652200 0 0 0 72 43 48 0 0 100 0 0 0 0 0 77244 21368 1652204 0 0 0 0 15 17 0 0 100 0 0 0 0 0 77244 21368 1652208 0 0 0 0 14 21 0 0 100 0 0 0 0 0 77244 21368 1652208 0 0 0 0 16 19 0 0 100 0 0 0 0 0 77244 21368 1652208 0 0 0 0 14 23 0 0 100 0 0 0 0 0 77244 21368 1652208 0 0 0 0 16 20 0 0 100 0 0iostat 显示磁盘IO状况。[root@asianux4 ~]# iostat 1avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 28.04 10.14 0.00 61.82Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnscd0 0.00 0.00 0.00 0 0sdb 0.00 0.00 0.00 0 0sda 3.96 0.00 55.45 0 56sdc 121.78 182.18 51169.31 184 51681sde 122.77 150.50 49347.52 152 49841sdf 0.00 0.00 0.00 0 0sdd 116.83 332.67 51232.67 336 51745dm-0 6.93 0.00 55.45 0 56dm-1 0.00 0.00 0.00 0 0md0 12800.99 15.84 102392.08 16 103416dm-2 0.00 0.00 0.00 0 0dm-3 12801.98 15.84 102400.00 16 103424avg-cpu: %user %nice %system %iowait %steal %idle 0.00 0.00 13.83 16.60 0.00 69.57Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnscd0 0.00 0.00 0.00 0 0sdb 0.00 0.00 0.00 0 0sda 0.00 0.00 0.00 0 0sdc 78.00 24.00 40680.00 24 40680sde 80.00 40.00 41680.00 40 41680sdf 0.00 0.00 0.00 0 0sdd 79.00 328.00 40680.00 328 40680dm-0 0.00 0.00 0.00 0 0dm-1 0.00 0.00 0.00 0 0md0 10136.00 0.00 81088.00 0 81088dm-2 0.00 0.00 0.00 0 0dm-3 10136.00 0.00 81088.00 0 81088ps 显示进程[root@asianux4 ~]# ps -ef 显示所有进程[root@asianux4 ~]# ps -aux 显示系统中所有进程的详细信息。pstree 显示进程树[root@asianux4 ~]# pstreeinit┬─NetworkManager ├─abrtd ├─acpid ├─atd ├─auditd───{auditd} ├─automount───4*[{automount}] ├─certmonger ├─console-kit-dae───63*[{console-kit-da}] ├─crond ├─cupsd ├─dbus-daemon ├─hald─┬─hald-runner─┬─hald-addon-acpi │ │ └─hald-addon-inpu │ └─{hald} ├─httpd───8*[httpd] ├─irqbalance ├─4*[login───bash] ├─master─┬─pickup │ └─qmgr ├─mcelog ├─2*[mingetty] ├─modem-manager ├─rpc.statd ├─rpcbind ├─rsyslogd───4*[{rsyslogd}] ├─sshd───bash───pstree ├─sshd ├─udevd───2*[udevd] ├─vsftpd └─wpa_supplicant[root@asianux4 ~]#显示系统运行的时间。[root@asianux4 ~]# uptime 23:43:23 up 23:51, 5 users, load average: 0.03, 0.09, 0.10[root@asianux4 ~]# cat /proc/uptime85901.05 341926.67[root@asianux4 ~]#显示内存的情况:[root@asianux4 ~]# free -m total used free shared buffers cachedMem: 1869 1800 68 0 21 1636-/+ buffers/cache: 142 1727Swap: 815 0 815真正的使用内存:142+21=163M 1800-1636-1=163M显示多核CPU的状况:mpstat[root@asianux4 ~]# mpstat -P ALL 123时49分44秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle23时49分45秒 all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.0023时49分45秒 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.0023时49分45秒 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.0023时49分45秒 2 0.00 0.00 0.97 0.00 0.00 0.00 0.00 0.00 99.0323时49分45秒 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00第一列:时间第二列:CPU及CPU的核数第三列:用户占用CPU的百分比第四列:优先级调整时占用CPU的百分比第五列:系统第六列:iowait IO等待第七列:硬中断第八列:软中断第九列:虚拟CPU中虚拟指令占用CPU的百分比(虚拟环境中使用)第十列:虚机占用CPU的百分比第十一列:CPU的空闲百分比显示进程的动态链接库文件及占用内存的大小。[root@asianux4 ~]# pmap -x 76527652: /usr/sbin/sshdAddress Kbytes RSS Dirty Mode Mapping00007f8ad1bf1000 48 0 0 r-x-- libnss_files-2.12.so00007f8ad1bfd000 2048 0 0 ----- libnss_files-2.12.so00007f8ad1dfd000 4 4 4 r---- libnss_files-2.12.so00007f8ad1dfe000 4 4 4 rw--- libnss_files-2.12.so00007f8ad1dff000 28 0 0 r-x-- librt-2.12.so00007f8ad1e06000 2044 0 0 ----- librt-2.12.so00007f8ad2005000 4 4 4 r---- librt-2.12.so00007f8ad2006000 4 4 4 rw--- librt-2.12.so00007f8ad2007000 228 0 0 r-x-- libnspr4.so00007f8ad2040000 2048 0 0 ----- libnspr4.so00007f8ad2240000 4 4 4 r---- libnspr4.so00007f8ad2241000 8 8 8 rw--- libnspr4.so查看系统中进程的动态内存。[root@asianux4 ~]# cat while.sh#!/bin/bashwhile truedopmap -d 7652|tail -1sleep 2done[root@asianux4 ~]# chmod +x while.sh[root@asianux4 ~]# sh while.shmapped: 66616K writeable/private: 808K shared: 0Kmapped: 66616K writeable/private: 808K shared: 0Kmapped: 66616K writeable/private: 808K shared: 0K进程的调试:strace[root@asianux4 ~]# strace -c -p 6610Process 6610 attached - interrupt to quitProcess 6610 detached% time seconds usecs/call calls errors syscall------ ----------- ----------- --------- --------- ---------------- -nan 0.000000 0 39 select -nan 0.000000 0 39 wait4------ ----------- ----------- --------- --------- ----------------100.00 0.000000 78 total显示当前系统所有进程的动态链接库。[root@asianux4 ~]# lsof |grep vsftpdvsftpd 3788 root cwd DIR 253,0 4096 2 /vsftpd 3788 root rtd DIR 253,0 4096 2 /vsftpd 3788 root txt REG 253,0 159568 176841 /usr/sbin/vsftpdvsftpd 3788 root mem REG 253,0 124624 176040 /lib64/libselinux.so.1vsftpd 3788 root mem REG 253,0 472064 163188 /lib64/libfreebl3.so...后面已省略找到动态链接库文件后,再到rpmfind.net或关盘网址查阅/lib64/libpthread-2.12.so查看本机监控的端口。[root@asianux4 ~]# lsof -iCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMErpcbind 1330 rpc 6u IPv4 10522 0t0 UDP *:sunrpcrpcbind 1330 rpc 7u IPv4 10524 0t0 UDP *:rmcrpcbind 1330 rpc 8u IPv4 10525 0t0 TCP *:sunrpc (LISTEN)rpcbind 1330 rpc 9u IPv6 10527 0t0 UDP *:sunrpcrpcbind 1330 rpc 10u IPv6 10529 0t0 UDP *:rmcrpcbind 1330 rpc 11u IPv6 10530 0t0 TCP *:sunrpc (LISTEN)rpc.statd 1459 rpcuser 5u IPv4 10808 0t0 UDP *:787rpc.statd 1459 rpcuser 8u IPv4 10816 0t0 UDP *:37593rpc.statd 1459 rpcuser 9u IPv4 10820 0t0 TCP *:58964 (LISTEN)rpc.statd 1459 rpcuser 10u IPv6 10824 0t0 UDP *:59776rpc.statd 1459 rpcuser 11u IPv6 10828 0t0 TCP *:39172 (LISTEN)cupsd 1494 root 6u IPv6 11113 0t0 TCP localhost:ipp (LISTEN)cupsd 1494 root 7u IPv4 11114 0t0 TCP localhost:ipp (LISTEN)cupsd 1494 root 9u IPv4 11117 0t0 UDP *:ippmaster 1753 root 12u IPv4 12026 0t0 TCP localhost:smtp (LISTEN)master 1753 root 13u IPv6 12028 0t0 TCP localhost:smtp (LISTEN)vsftpd 3788 root 3u IPv4 17645 0t0 TCP *:ftp (LISTEN)sshd 5402 root 3u IPv4 20693 0t0 TCP asianux4:EtherNet/IP-1->192.168.232.1:ndsconnect (ESTABLISHED)rsyslogd 5880 root 3u IPv4 22305 0t0 UDP *:syslogrsyslogd 5880 root 4u IPv6 22306 0t0 UDP *:sysloghttpd 6610 root 4u IPv6 23365 0t0 TCP *:http (LISTEN)httpd 6613 apache 4u IPv6 23365 0t0 TCP *:http (LISTEN)httpd 6614 apache 4u IPv6 23365 0t0 TCP *:http (LISTEN)httpd 6615 apache 4u IPv6 23365 0t0 TCP *:http (LISTEN)httpd 6616 apache 4u IPv6 23365 0t0 TCP *:http (LISTEN)httpd 6617 apache 4u IPv6 23365 0t0 TCP *:http (LISTEN)httpd 6618 apache 4u IPv6 23365 0t0 TCP *:http (LISTEN)httpd 6619 apache 4u IPv6 23365 0t0 TCP *:http (LISTEN)httpd 6620 apache 4u IPv6 23365 0t0 TCP *:http (LISTEN)sshd 7652 root 3u IPv4 26541 0t0 TCP *:ssh (LISTEN)sshd 7652 root 4u IPv6 26543 0t0 TCP *:ssh (LISTEN)sshd 7654 root 3r IPv4 26547 0t0 TCP asianux4:ssh->192.168.232.1:solid-e-engine (ESTABLISHED)[root@asianux4 ~]#[root@asianux4 ~]# netstat -atnupActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1330/rpcbindtcp 0 0 0.0.0.0:58964 0.0.0.0:* LISTEN 1459/rpc.statdtcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3788/vsftpdtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 7652/sshdtcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1494/cupsd查看远程主机开放的端口及操作系统。[root@asianux4 ~]# nmap 10.6.65.181Starting Nmap 5.51 ( http://nmap.org ) at 2015-09-19 00:46 CSTNmap scan report for client (10.6.65.181)Host is up (0.00086s latency).Not shown: 997 filtered portsPORT STATE SERVICE21/tcp closed ftp22/tcp open ssh443/tcp closed httpsMAC Address: 00:0C:29:8C:61:1F (VMware)Nmap done: 1 IP address (1 host up) scanned in 31.43 seconds[root@asianux4 ~]# nmap -O 10.6.65.181Starting Nmap 5.51 ( http://nmap.org ) at 2015-09-19 00:47 CSTNmap scan report for client (10.6.65.181)Host is up (0.00079s latency).Not shown: 997 filtered portsPORT STATE SERVICE21/tcp closed ftp22/tcp open ssh443/tcp closed httpsMAC Address: 00:0C:29:8C:61:1F (VMware)Device type: general purpose|WAP|specializedRunning (JUST GUESSING): Linux 2.6.X|2.4.X (89%), Netgear embedded (89%), Linksys Linux 2.4.X (87%), Asus Linux 2.6.X (87%), Crestron 2-Series (86%)Aggressive OS guesses: Linux 2.6.23 - 2.6.33 (89%), Linux 2.6.31 - 2.6.34 (89%), Linux 2.6.9 - 2.6.27 (89%), Netgear DG834G WAP (89%), Linux 2.6.27 (Ubuntu 8.10) (88%), Linux 2.6.22 (Fedora Core 6) (88%), Linux 2.6.32 (88%), Linux 2.6.34 (88%), OpenWrt White Russian 0.9 (Linux 2.4.30) (87%), OpenWrt 0.9 - 7.09 (Linux 2.4.30 - 2.4.34) (87%)No exact OS matches for host (test conditions non-ideal).Network Distance: 1 hop[root@asianux4 ~]# telnet 10.6.65.181 22Trying 10.6.65.181...Connected to 10.6.65.181.Escape character is '^]'.SSH-2.0-OpenSSH_5.3Connection closed by foreign host.[root@asianux4 ~]#查看主机的socket连接信息。ss和netstat命令相似[root@asianux4 ~]# netstat -atnup|grep :21tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3788/vsftpd[root@asianux4 ~]# ss -antup|grep :21tcp LISTEN 0 32 *:21 *:* users:(("vsftpd",3788,3))[root@asianux4 ~]#抓包工具:tcpdump抓取FTP服务器的用户名和密码。[root@asianux4 ~]# tcpdump -i eth0 -nn -X 'port 21'抓取ssh服务器的通信包。[root@asianux4 ~]# tcpdump -i eth0 host 192.168.232.1 and port 22监控网络流量iptraf[root@asianux4 ~]# yum install iptraf -y[root@asianux4 ~]# unset LANG[root@asianux4 ~]# iptraf 查看网络流量