liunx系统调优

liunx系统调优

1.系统的运行状况: 处理器–>内存—> 硬盘----> 网络----->程序
cpu -->MEN --> DISK --> NETWORK—>应用程序调优

性能优化的4个子系统

cpu
menmory
IO 读写
Network

2.分析是否有瓶颈(依据当前应用需求)

出现以下问题,怎么解决?

1.找出系统中使用cpu最多的进程?
2.找出系统中使用内存最多的进程?
3.找出系统中对磁盘读写最多的进程?
4.找出系统中使用网络最多的进程?

1查看cpu负载相关的工具

uptime命令

[root@VM_0_5_centos]# uptime

15:06:41 up 42 days, 20:06, 1 user, load average: 0.03, 0.02, 0.05

15:06:41 当前时间
up 42 days 系统运行时间,说明此服务器连续运行了42天
1 user 当前登录用户数
load average: 0.03, 0.02, 0.05 系统负载,即任务队列平均长度,三个数值分别为1分钟 5分钟 15分钟前到现在的平均值

1.如何判断cpu负载是否过高
如果服务器的cpu为1核心,则load average中的数字 >=3负载过高,如果服务器的cpu为4核,则load average中的数字 >=12 负载过高。

运行top,然后数字键1
找出使用cpu最多的进程,按大写的P,可以按cpu使用率来排序显示

Tasks:  83 total,   1 running,  82 sleeping,   0 stopped,   0 zombie
%Cpu0  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu1  :  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  3880940 total,   452640 free,   173844 used,  3254456 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  3401964 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                                                                                  
 5689 root      20   0  612500  14076   2392 S   0.3  0.4 123:03.97 barad_agent                                                                                                                                                                                              
    1 root      20   0   43356   3516   2352 S   0.0  0.1   2:19.08 systemd                                                                                                                                                                                                  
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.29 kthreadd                                                                                                                                                                                                 
    3 root      20   0       0      0      0 S   0.0  0.0   0:02.01 ksoftirqd/0                                                                                                                                                                                              
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                                                                                                                                             
    6 root      20   0       0      0      0 S   0.0  0.0   0:26.88 kworker/u4:0                                                                                                                                                                                             
    7 root      rt   0       0      0      0 S   0.0  0.0   0:04.31 migration/0                                                                                                                                                                                              
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                                                                                                                                   
    9 root      20   0       0      0      0 S   0.0  0.0   2:16.77 rcu_sched  

按照实际使用cpu,从大到小排序显示所有进程列表
[root@centos]# ps -aux --sort -pcpu |more #按cpu降序排序
查看 -pcpu
man ps #然后搜索pcpu,找到下面内容
pcpu cpu utilization #cpu利用率

注:-pcpu 和 -cpu 相比, -pcpu可以显示出进程绝对路径,方便找出木马程序运行的路径

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1401  0.7  0.4 391592 19608 ?        Sl   Apr08  19:52 python -u bin/WALinuxAgent-2.2.38-py2.7.egg -run-exthandlers
root          1  0.0  0.1  45964  6292 ?        Ss   Apr08   0:12 /usr/lib/systemd/systemd --system --deserialize 17
root          2  0.0  0.0      0     0 ?        S    Apr08   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Apr08   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   Apr08   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    Apr08   0:03 [migration/0]
root          8  0.0  0.0      0     0 ?        S    Apr08   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    Apr08   0:39 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   Apr08   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    Apr08   0:01 [watchdog/0]
root         12  0.0  0.0      0     0 ?        S    Apr08   0:00 [watchdog/1]
root         13  0.0  0.0      0     0 ?        S    Apr08   0:03 [migration/1]
root         14  0.0  0.0      0     0 ?        S    Apr08   0:00 [ksoftirqd/1]
root         16  0.0  0.0      0     0 ?        S<   Apr08   0:00 [kworker/1:0H]
root         18  0.0  0.0      0     0 ?        S    Apr08   0:00 [kdevtmpfs]
root         19  0.0  0.0      0     0 ?        S<   Apr08   0:00 [netns]
root         20  0.0  0.0      0     0 ?        S    Apr08   0:00 [khungtaskd]
root         21  0.0  0.0      0     0 ?        S<   Apr08   0:00 [writeback]
root         22  0.0  0.0      0     0 ?        S<   Apr08   0:00 [kintegrityd]
root         23  0.0  0.0      0     0 ?        S<   Apr08   0:00 [bioset]
root         24  0.0  0.0      0     0 ?        S<   Apr08   0:00 [bioset]
root         25  0.0  0.0      0     0 ?        S<   Apr08   0:00 [bioset]
root         26  0.0  0.0      0     0 ?        S<   Apr08   0:00 [kblockd]
root         27  0.0  0.0      0     0 ?        S<   Apr08   0:00 [md]
root         28  0.0  0.0      0     0 ?        S<   Apr08   0:00 [edac-poller]
root         34  0.0  0.0      0     0 ?        S    Apr08   0:00 [kswapd0]

2.找出系统中使用内存最多的进程?
使用top命令
运行 top 然后按下大写的M 可以按内存使用率来排序

[root@centos]# top
top - 07:32:01 up 1 day, 18:06,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 122 total,   1 running, 121 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  4028536 total,  2846828 free,   192812 used,   988896 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  3488852 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                                                                                                 
  1401 root      20   0  391592  19608   5588 S   0.7  0.5  19:55.48 python                                                                                                                                                                                                  
   938 root      20   0  573820  17132   6100 S   0.0  0.4   0:18.35 tuned                                                                                                                                                                                                   
   940 root      20   0  232348  14772   4572 S   0.0  0.4   0:00.73 python                                                                                                                                                                                                  
   566 polkitd   20   0  540520  11096   4688 S   0.0  0.3   0:00.76 polkitd                                                                                                                                                                                                 
  1117 root      20   0  476220   8624   6484 S   0.0  0.2   0:03.08 NetworkManager                                                                                                                                                                                          
     1 root      20   0   45964   6292   3884 S   0.0  0.2   0:12.05 systemd                                                                                                                                                                                                 
 90481 root      20   0  267920   5784   4424 S   0.0  0.1   0:00.03 sudo                                                                                                                                                                                                    
   941 root      20   0  216376   5676   4600 S   0.0  0.1   0:09.13 rsyslogd                                                                                                                                                                                                
 90421 root      20   0  160916   5532   4180 S   0.0  0.1   0:00.48 sshd                                                                                                                                                                                                    
   370 root      20   0   39228   5284   4936 S   0.0  0.1   0:02.41 systemd-journal                                                                                                                                                                                         
   400 root      20   0   47504   5076   2828 S   0.0  0.1   0:00.46 systemd-udevd                                                                                                                                                                                           
 90929 nginx     20   0   50456   4968   2416 S   0.3  0.1   0:12.86 nginx                                                                                                                                                                                                   
 17160 root      20   0   48368   4380   1848 S   0.0  0.1   0:00.03 nginx                                                                                                                                                                                                   
  1389 root      20   0  112812   4288   3264 S   0.0  0.1   0:00.03 sshd                                                                                                                                                                                                    
  1059 postfix   20   0   91888   4096   3084 S   0.0  0.1   0:00.15 qmgr                                                                                                                                                                                                    
121389 postfix   20   0   91836   4076   3068 S   0.0  0.1   0:00.01 pickup                                                                                                                                                                                                  
   396 root      20   0  119060   4004   2544 S   0.0  0.1   0:00.01 lvmetad                                                                                                                                                                                                 
 90492 root      20   0  229736   3532   2680 S   0.0  0.1   0:00.01 su                                                                                                                                                                                                      
 90493 root      20   0  116480   3256   1804 S   0.0  0.1   0:00.13 bash                                                                                                                                                                                                    
 90426 jazz      20   0  116368   3040   1684 S   0.0  0.1   0:00.08 bash                                                                                                                                                                                                    
   569 dbus      20   0   68512   2628   1924 S   0.0  0.1   0:04.87 dbus-daemon                                                                                                                                                                                             
 90425 jazz      20   0  160916   2508   1136 S   0.0  0.1   0:00.28 sshd                                                                                                                                                                                                    
   562 root      20   0   24492   2292   1712 S   0.0  0.1   0:00.04 smartd                                                                                                                                                                                                  
  1317 root      20   0  107396   2292    304 S   0.0  0.1   0:00.00 dhclient                                                                                                                                                                                                
122078 root      20   0  161980   2272   1556 R   0.0  0.1   0:00.05 top  

按照实际使用内存,从大到小排序显示所有进程
[root@centos]# ps -aux --sort -rss| more 注:-rss去掉减号就是升序排序

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1401  0.7  0.4 391592 19608 ?        Sl   Apr08  19:56 python -u bin/WALinuxAgent-2.2.38-py2.7.egg -run-exthandlers
root        938  0.0  0.4 573820 17132 ?        Ssl  Apr08   0:18 /usr/bin/python -Es /usr/sbin/tuned -l -P
root        940  0.0  0.3 232348 14772 ?        Ss   Apr08   0:00 /usr/bin/python -u /usr/sbin/waagent -daemon
polkitd     566  0.0  0.2 540520 11096 ?        Ssl  Apr08   0:00 /usr/lib/polkit-1/polkitd --no-debug
root       1117  0.0  0.2 476220  8624 ?        Ssl  Apr08   0:03 /usr/sbin/NetworkManager --no-daemon
root          1  0.0  0.1  45964  6292 ?        Ss   Apr08   0:12 /usr/lib/systemd/systemd --system --deserialize 17
root      90481  0.0  0.1 267920  5784 pts/0    S    Apr09   0:00 sudo su
root        941  0.0  0.1 216376  5676 ?        Ssl  Apr08   0:09 /usr/sbin/rsyslogd -n
root      90421  0.0  0.1 160916  5532 ?        Ss   Apr09   0:00 sshd: jazz [priv]
root        370  0.0  0.1  39228  5284 ?        Ss   Apr08   0:02 /usr/lib/systemd/systemd-journald
root        400  0.0  0.1  47504  5076 ?        Ss   Apr08   0:00 /usr/lib/systemd/systemd-udevd
nginx     90929  0.0  0.1  50456  4968 ?        S    Apr09   0:12 nginx: worker process
root      17160  0.0  0.1  48368  4380 ?        Ss   Apr08   0:00 nginx: master process nginx
root       1389  0.0  0.1 112812  4288 ?        Ss   Apr08   0:00 /usr/sbin/sshd -D
postfix    1059  0.0  0.1  91888  4096 ?        S    Apr08   0:00 qmgr -l -t unix -u
postfix  121389  0.0  0.1  91836  4076 ?        S    07:07   0:00 pickup -l -t unix -u
root        396  0.0  0.0 119060  4004 ?        Ss   Apr08   0:00 /usr/sbin/lvmetad -f
root      90492  0.0  0.0 229736  3532 pts/0    S    Apr09   0:00 su
root      90493  0.0  0.0 116480  3256 pts/0    S    Apr09   0:00 bash
jazz      90426  0.0  0.0 116368  3040 pts/0    Ss   Apr09   0:00 -bash
dbus        569  0.0  0.0  68512  2628 ?        Ssl  Apr08   0:04 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
jazz      90425  0.0  0.0 160916  2508 ?        S    Apr09   0:00 sshd: jazz@pts/0
root        562  0.0  0.0  24492  2292 ?        Ss   Apr08   0:00 /usr/sbin/smartd -n -q never
root       1317  0.0  0.0 107396  2292 ?        Ss   Apr08   0:00 /sbin/dhclient -q -lf /var/lib/dhclient/dhclient--eth0.lease -pf /var/run/dhclient-eth0.pid -H Jazz-static-proxy3 eth0
root       1057  0.0  0.0  91716  2208 ?        Ss   Apr08   0:00 /usr/libexec/postfix/master -w
root     122173  0.0  0.0 157552  2048 pts/0    R+   07:35   0:00 ps -aux --sort -rss
chrony      583  0.0  0.0 117752  1832 ?        S    Apr08   0:00 /usr/sbin/chronyd
root        568  0.0  0.0  26376  1756 ?        Ss   Apr08   0:01 /usr/lib/systemd/systemd-logind
root      13901  0.0  0.0 126284  1700 ?        Ss   Apr08   0:01 /usr/sbin/crond -n
root        558  0.0  0.0  21524  1200 ?        Ss   Apr08   0:12 /usr/sbin/irqbalance --foreground
rpc         574  0.0  0.0  69220  1064 ?        Ss   Apr08   0:00 /sbin/rpcbind -w
root        937  0.0  0.0   7112   944 ?        Ss   Apr08   0:01 /usr/sbin/hypervkvpd -n
root        595  0.0  0.0  25904   932 ?        Ss   Apr08   0:00 /usr/sbin/atd -f
root        530  0.0  0.0  55508   892 ?        S<sl Apr08   0:00 /sbin

3.找出系统中对磁盘读写最多的进程?
IO调优相关查看工具
查看那个磁盘或分区最繁忙?
通过iostat命令查看IO是否存在瓶颈
常用参数
-d 仅显示磁盘统计信息
-k 以k为单位显示每秒磁盘请求数,默认为单位块
-p device | ALL 用于显示块设备及系统分区的统计信息

[root@centos]# iostat
Linux 3.10.0-862.11.6.el7.x86_64 (Jazz-static-proxy3) 	04/10/2019 	_x86_64_	(2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.36    0.00    0.27    0.05    0.00   99.31

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.79         1.59         7.89     242421    1200535
sdb               0.01         0.06       140.89       9745   21432804
scd0              0.00         0.00         0.00        124          0

[root@centos]# iostat -p sda -dk
Linux 3.10.0-862.11.6.el7.x86_64 (Jazz-static-proxy3) 	04/10/2019 	_x86_64_	(2 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.79         1.59         7.88     242529    1201243
sda1              0.01         0.04         0.01       5618       2068
sda2              0.76         1.55         7.87     235866    1199175

注释
tps 该设备每秒的传输次数(Indicate the number of transfers per second that were jssued to the device.)"一次传输"意思是“一次io请求”
多个逻辑请求可能会被合并为“一次IO请求”。“一次传输”请求的大小是未知的

kB_read/s 每秒从驱动读入的数据量,单位为K
kB_wrtn/s 每秒向驱动器写入的数据量 单位为K
kB_read 读入的数据总量 单位为K
kB_wrtn 写入的数据总量 单位为K

iotop命令,查看哪个进程使用磁盘读写最多?

参数
-o , only 只显示在读写硬盘的程序
-d SEC, -delay=SEC 设定显示时间间隔
按q退出

[root@centos]# iotop -o -d 3    注3  代表是3秒
Total DISK READ :	0.00 B/s | Total DISK WRITE :       0.00 B/s
Actual DISK READ:	0.00 B/s | Actual DISK WRITE:       0.00 B/s

4.找出系统中使用网络最多的进程?

使用nload 监控总体带宽使用情况
使用iptraf查看每个链接与主机之间的数据,找出恶意消耗带宽最多的IP
使用nethogs找出使用带宽最多的进程

安装aload
1.先下载好aload安装包
2.安装依赖包
3.解压安装包
4.编译
5.安装

wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz
yum -y install ncurses* gcc gcc-c++
tar zxvf nload-0.7.4.tar.gz
cd nload-0.7.4
./configure
make&&make install

使用命令nload

ab -n 10000 -c 2 http://www.baidu.com/index.html    #测试访问百度10000次。分两次执行

如果提示没有ab命令,ab是apache自带的测试命令
就安装一下httpd

使用iptraf查看每个链接与主机之间的数据,找出恶意消耗带宽最多的IP
iptraf命令
iptraf是一款交互式、色彩鲜艳的IP局域网监控工具。它可以显示每个连接以及主机之间传输的数据量
命令安装
yum install -y iptraf
命令使用
iptraf-ng

在运行软件之前,先监控一下流量
statistical breakdowns 统计分析----->选择统计端口上的流量: By TCP/UDP Port

使用nethogs找出使用带宽最多的进程
nethogs是一款小巧的"net top"工具,可以显示每个进程所使用的带宽,并对列表排序,将耗用带宽最多的进程排在最上面。万一出现带宽使用突然激增的情况,用户迅速打开nethogs,就可以找到导致带宽使用激增的进程。nethogs可以报告程序的进程编号(PID)、用户和路径。
命令的安装

wget https://github.com/raboof/nethogs/archive/v0.8.1.tar.gz
yum install libpcap-devel
tar zxvf v0.8.1.tar.gz
cd nethogs-0.8.1/
make && make install
nethogs

总结
系统调优4大子系统
1.找出系统中使用cpu最多的进程? top - P 或者 ps -aux --sort -pcpu
2.找出系统中使用内存最多的进程? top - M 或者 ps -aux --sort -rss
3.找出系统中对磁盘读写最多的进程? iostat 和 iotop
4.找出系统中使用网络最多的进程? nload iptraf nethogs

2019年4月10日 -------------linux学习
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux系统调优面试涉及到优化Linux系统的性能和稳定性,需要掌握Linux系统的基本原理和调优技巧,包括CPU内存、磁盘、网络等方面的优化。在面试中,需要展示自己对Linux系统调优的理解和实践经验,能够针对不同的应用场景提出合理的优化方案,同时需要具备良好的沟通能力和团队合作精神。 ### 回答2: Linux系统调优是全面优化Linux操作系统以提其性能和稳定性的过程。在面试中,可能会被问及如何进行Linux系统调优。 首先,进行Linux系统调优需要了解Linux内部机制。操作系统是由内核和系统库组成的。内核是Linux系统的核心,负责管理系统资源、文件系统、网络等等。系统库包括库函数和驱动程序,提供各种服务和设备的接口。 要进行系统调优,需要知道如何对资源进行管理,例如内存CPU、磁盘和网络。Linux系统的资源管理非常灵活,可以通过调整内核参数和设置内存映射来管理内存。还可以使用nice、renice和taskset等命令来调整CPU分配。使用iostat和vmstat等命令可以监控磁盘和内存利用率。运行ifconfig和ping等命令可以诊断网络问题。此外,还要了解Linux系统的各种文件系统,包括ext2、ext3、ext4、XFS等等。 除了资源管理,还需要了解系统安全和性能优化技术。例如,可以使用SELinux和iptables来保护系统安全。可以通过减少系统任务和服务、启用缓存、使用优化算法等等来提系统性能。可以使用top、htop和nmon等命令来监控系统性能。 总之,Linux系统调优需要深入了解Linux系统的各个方面,并能快速诊断和解决问题。通过掌握Linux系统调优技术,可以提系统的效率和稳定性,提系统可用性,满足用户的需求。 ### 回答3: 在Linux系统调优的面试中,面试官将关注以下几点: 1、性能问题定位。要求面试者熟悉各种Linux性能监控工具,如top、dstat、sar等,并能通过观察系统负载、CPU内存等指标,分析问题所在。 2、磁盘IO调优。面试者应了解Linux磁盘IO的相关知识,包括磁盘调度算法、磁盘读写速度、IOPS等,以及如何通过对磁盘缓存、IO调度算法等的优化来提磁盘IO性能。 3、内存调优。面试者需要掌握Linux内存管理的相关知识,如虚拟内存、交换分区、内存回收等,并能合理配置内存,避免出现内存不足的问题。 4、网络调优。对于面试者来说,了解Linux网络体系结构以及各层协议是很重要的,对于TCP参数优化、网络流量控制、QoS等也需要有一定的认识和实践经验。 5、文件系统优化。面试者应该熟悉不同的文件系统类型,如ext2、ext3、ext4、xfs等,并能针对不同的应用场景选择最适合的文件系统类型。同时也要掌握文件系统缓存参数、inode等配置项的优化。 在面试时,要求面试者能够举一些实际场景以及问题所在,并能展示他们的解决方案和效果,从而证明他们具有这些调优技能。此外,面试者还应具备团队协作、问题解决、沟通交流等方面的技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rio520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值