Linux知识点总结如下,在日常生产操作和面试中会涉及到

1.常见的Linux的发行版本有哪些:

     答:ubunt CentOS redhat等

2.切换用户的命令: su lizhi切换到lizhi用户(不需要输入密码)  su root 切换到root用图画(需要输入密码)

3.修改用户密码:passwd lizi 修改lizhi用户的密码

4.测试当前系统与指定IP地址系统的网络连接状态: ping  IP地址   crul httpXXX 测试url地址

5.目录切换:cd /etc/lizhi/test/

6.切换到上一层目录:cd ..

7.切换到系统根目录:cd /

8.切换到用户主目录(root目录下):cd ~

9.创建文件夹命令:mkdir 文件夹名称

10.查看文件夹(目录)的命令:

     ls 文件夹名:查看该文件夹下的所有目录和文件(不包含隐藏)

     ls -a 文件夹名:查看该文件夹下所有文件和目录 包含隐藏文件

     ll 文件夹名:查看该文件夹下所有的目录和文件的详细信息(不包含隐藏)

11.修改文件夹 文件 压缩包名称:mv 旧名称  新名称

12.移动文件夹 文件 压缩包等所使用的命令:mv 文件名称  文件的新位置

13.拷贝文件 文件夹 压缩包:cp 文件 文件新位置

14.删除文件文件夹 压缩包:rm -rf 文件名称

15.创建一个文件:touch 文件名称

16.查看文件:cat 文件名

17.vi(vim)文本编辑器有三种工作模式:命令行模式 插入模式 和底行模式,其中新系统需要自己安装vim才可使用 vim编辑器

    命令行模式:最初进入的一般模式,该模式下可以移动光标进行浏览,删除整行(dd) 复制整行(yy,6yy表示复制6行),粘贴(p),但是无法编辑文字。

    插入模式:可使用i键从命令行模式切换到插入模式,只有在该模式下,用户可编辑文件,可使用[esc]键返回命令行模式

     底行模式:通过“:”从命令行返回到底行模式,在该模式下,可对文件保存w 退出q 可设置编辑环境,如寻找 列出行号,:wq保存并退出   :q!表示强制退出

18.修改一个文件命令(vi文本编辑器)

      1.输入命令vim 文件名 打开文件  进入到命令行模式,按键盘i进入插入模式进行编辑

      2.编辑完后 按esc键退出插入模式 进入命令行模式

     3.输入:进入底行模式  输入wq 保存并退出

19.将 /lizhi 目录下的所有文件和目录打包并压缩成一个temp.tar.gz文件:tar cvzf temp.tar.gz /lizhi

20.将XXX.tar.gz文件解压到user目录下:tar xvzf xxx.tar.gz /user

21.安装名字为tftp软件:rpm -ivh tftp.rpm

22.显示当前目录的绝对路径:  pwd

23.查看当前系统网络信息:ifconfig

24.配置eth0这一网卡的IP为192.168.0.1:ifconfig eth0 192.168.0.1

25.暂停etho网卡工作:ifconfig eth0 down

26.恢复eth0网卡:ifconfig eth0 up

27.系统中的每一个文件或者目录的访问权限分为 可读 可写 可执行。每一个文件或者目录的访问权限独有三组,可读 可写 可执行,当使用ls -l命令显示文件或者目录的详细信息时,最左边的一列为文件的访问权限 如:ls -l sobsrc.tgz 显示为-rw-r--r--1 root root 483997 Jun1 15 17:31 sobsrc.tgz  r为可读 w为科协 x表示可执行,横线代表无该项权限。

27.chmod 761 hello.c 表示hello.c文件的访问权限是什么:

     chmod 761 hello.c  <--> chmod 111110001 hello.c

      文件所有者对hello.c文件可读 可写 可执行,与所有同组的用户对其可读写执行,系统用户不可读写 可执行

28.项目开发中 为了方便操作 会把经常用到的文件或者目录设置为可读 科可写 可执行,:chmod 777 hello.c

29.Linux上安装软件:安装jdk mysql tomcat 

30.远程连接Linux的工具:secureCRT SSHSecure  mobaXterm

31.安装jdl的步骤:

    1.查看Linux是否安装了jdk:  rmp -qa|grep java

    2.卸载两个OpenJDK :rmp -e --nodeps 要写在的软件

   3.上传jdk到Linux

   4.安装jdk运行需要的插件 yum install glibc.i686

   5.解压jdk到/usr/local下  首先保证是在目录为/ 

        tar –xvf jdk-7u71-linux-i586.tar.gz –C /usr/local(有滚动条)

        或者:tar –zxvf jdk-7u71-linux-i586.tar.gz –C /usr/local(有滚动条)

        或者:tar –zxf jdk-7u71-linux-i586.tar.gz –C /usr/local(没有滚动条)

  6.改名字 rm jdk_1.7.0_71 jdk1.7

   7.配置环境变量 打开/etc/profile配置文件,拷贝文件

       vim /etc/profile   按i进入插入模式。复制如下:

        然后保存即可

#set java environmentJAVA_HOME=/usr/local/jdk1.7.0_71CLASSPATH=.:$JAVA_HOME/lib.tools.jarPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CLASSPATH PATH

7)重新加载/etc/profile配置文件 source /etc/profile  :source /etc/profile

8) 输入java-version查看是否安祖航成功 至此安装完成。

32. 安装mysql步骤:

      

1.查看Linux自带的mysql:rpm -qa|grep mysql
2.卸载自带的mysql:rpm -e--nodeps mysql-libs-5.1.73-3.el6_5.i686
3.上传mysql到Linux
4.安装mysql依赖 yum -y install libaio.so.1 libgcc_c.so.1 libstdc++.so.6yum update libstdc++-4.4.7-4.el6.x86_64
5.解压mysql到/usr/local/下的mysql目录(mysql目录需要自己手动创建)cd /usr/localmkdir mysqltar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar -C /usr/local/mysql
6.在/usr/local/mysql下安装mysql 安装服务器端:rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm安装客户端:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm
7.启动mysqlservice mysql start(这种放肆每次都要启动一次,不推荐)加入到系统服务中并开机启动加入到系统服务:chkconfig -add mysql自动启动:chkconfig musql on
8.登录mysqlmysql安装后会生成一个随机木马,存储在/root/.mysql_secret 查看该文件,会有the random password set for the root user at XXX(localtime):XXXX 这里就是密码mysql -u root -p输入找到的密码 会报错,因为我们刚只是设置了自动启动,还没启动mysql需要再次输入 service mysql start
9.修改密码:set password = password('root')  root为新密码
10.开启mysql远程登录默认情况下mysql为安全起见,不支持远程登录,所以需要手动开启远程登录权限,登录mysql后输入如下命令: grant all privileges on *.* to 'root' @'%' identified by 'root';fulsh privileges;
11 开放Linux的对外访问端口3306/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT/etc/rc.d/init.d/iptables save ---将修改永久保存到防火墙中注意:你想开放哪个端口 就把3306处给替换一下

33 安装tomcat

1.上传tomcat到Linux下
2.解压tomcat到/usr/local文件夹下:tar -xvf apache-tomcat-7.0.57.tar.gz -C /usr/local进入到解压文件所在的目录。看到解压成功,但是这个名字太长 改个名字:cd /usr/localls   看到了apache-XXXX很长的名字mv apache-XXX/ tomcat :改名字
3.启动tomcat进入tomcat的bin下启动 ./startup.sh这样tomcat就启动成功,但是也许可能访问不成功,因为防火墙把8080给挡住了,
4.开放8080端口,并添加到防火墙中/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT/etc/rc.d/init.d/iptables save
5.再次访问 成功附:如何关闭Linux的防火墙关闭防火墙:service iptables stop永久关闭防火墙:chkconfig iptables off开启防火墙:service iptables start关闭tomcat:进入到/bin下面 ./shutdown.sh 即可启动tomcat: bin下的./startup.sh
关闭tomcat: bin下的 ./shutdown.sh

33 各类其他的操作汇总:

2.文件的操作pwd 显示当前所在的路径mkdir filename 创建文件夹mkdir -p /a/b 创建嵌套的目录touch filename 创建文件cp filename new_filename  复制文件mv filename path 移动文件(如果路径中带文件名,则会给文件重命名)rm -r filename 删除文件或者文件夹,(-r是递归的意思)rm -f 强制删除目录或文件rmdir filename 删除文件夹(只能是空文件夹)find / -name "install.log“ 查找  可以用*作为通配符;1.修改文件操作权限  chmod u+x filename 给所属用户增加执行的权限chmod g-w filename 给组减少写的权限chmod o+w filename 给其他用户增加写的权限chmod 777 filename 给所属用户,所属组,其他用户开放所有权限;3. 日常维护用的命令1.找到服务器对应的进程 ps -ef |grep "tomcat" 这样就能知道服务器所对应的进程,以及服务器安装的目录。2.关闭服务器可以用kill -9 pid 杀死进程。也可以到tomcat的bin目录下./shutdown.sh。开启服务器./startup.sh3.用winscp,上传修改后的文件。4.日志查看,tail -200f catalina.out  显示日志的最后200行。ctrl+c 退出查看;find /path -type d |wc -l 统计某路径下文件夹的个数find /path -type f | wc -l 统计某路径下文件的个数cat 查看文件内容wc -lwc filename 统计文件的行数,字符数,字节数  l表示行数,w表示字符数,c表示字节数> 覆盖式输出重定向符 >>追加式输出重定向符vi filename 对文件进行编辑。vi有三种模式,分别是命令模式、插入模式和末行模式。默认进入命令模式,其他模式按esc也可进入命令模式Page Down 或Ctrl+F  下翻一页Page Up 上翻一页Home或^ 或0  跳至行首End 或$    跳至行尾1G 或 gg  跳至首行G  跳至尾行#G  跳至第#行:set nu   示行数:set nonu  显示行数x或del  删除光标处的单个字符dd  删除当前行#dd  删除当前行开始的#行d^  删除当前行首至光标的字符d$  删除当前行尾至光标的字符yy  复制当前行#yy  复制当前行开始的#行p  粘贴至光标的右侧P  粘贴至光标的左侧/word  向下查找字符串word?word  向上查找字符串wordn  光标定位至下一个匹配字符N  光标定位至上一个匹配字符u  单次撤销 多次恢复U  撤销所有编辑插入模式:命令模式下,i 、a、o、 Insert即可进入。该模式可用于编辑文本末行模式:shit+: 即可进入:w   保存文件 : /filename   另存文件为fielname:q  未修改时退出:q!  不保存且强制退出:wq  保存修改并退出:s /old/new  前行的第一个old替换为new:s /old/new/g  前行的所有old替换为new:#,# s /old/new/g    #行间的所有old替换为new:% s /old/new/g  当前文件所有old替换为new:s /old/new/c   old替换为new时提示确认替换:g/str1/s//str2/g  str2 替换所有的str1

34 docker 安装mysql tomcat jdk的操作:

     

1.docker 安装mysql 1.1 先从镜像仓库拉取mysql的镜像文件:docker pull mysql:5.61.2 启动一个容器:docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/data:/var/lib/mysql -v $PWD/logs:/logs --name test_mysql mysql:5.6参数说明 -d 让容器在后台运行 -p 3306:3306 将容器的 3306 端口映射到主机的 3306 端口-e 设置环境变量,这里是设置mysql的root用户的初始密码,这个必须设置 -v $PWD/conf:/etc/mysql/conf.d 将主机当前目录下的 conf/my.cnf 挂载到容器的         /etc/mysql/my.cnf-v $PWD/data:/var/lib/mysql 将主机当前目录下的data目录挂载到容器的 /var/lib/mysql -v $PWD/logs:/logs 将主机当前目录下的 logs 目录挂载到容器的 /logs–name 容器的名字,随便取,但是必须唯一1.3 通过命令docker ps -l 查看刚刚创建的容器1.4 进入刚刚创建的容器中:docker exec -it test_mysql /bin/bash参数说明:-i 对容器进行标注输入进行交互 -t 在容器里产生伪终端容器里没有vim 得先安装vim 安装前需要先执行apt update命令,不然会报错,1.4.1 apt-get update 作用:同步/etc/apt/sources.list和/etc/apt/sources.list.d中列出来的源索引,这样才能获取到最新的软件包1.4.2:apt-get install vim1.5 进入到刚创建的容器中,docker exec -it test_mysql /bin/bash通过上面步骤中的-e MYSQL_ROOT_PASSWORD设置root账户的初始登录密码登录mysql查看默认的用户访问设置如上则可以在主机上直接通过mysql -h 127.0.0.1 -u root -p 连接mysql了设置远程访问授权等信息mysql -u root -pgrant all privileges on *.* to root@"%" identified by "123456" with grant option;ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'flush privileges;取消mysql查询大小写问题进入docker的mysql容器,编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件 在[mysqlId]下添加如下:[mysqlId]lower_case_table_names=1保存并退出容器;执行sudo docker restart mysql 重启mysql即可查看解决Mysql5.7的查询兼容问题。此设置重启失效。
如:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column
MySQL 5.7.5和up实现了对功能依赖的检测。如果启用了only_full_group_by SQL模式(在默认情况下是这样),那么MySQL就会拒绝选择列表、条件或顺序列表引用的查询,这些查询将引用组中未命名的非聚合列,而不是在功能上依赖于它们。(在5.7.5之前,MySQL没有检测到功能依赖项,only_full_group_by在默认情况下是不启用的。解决方案1:set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';解决方案2(写配置文件,重启不失效。去除NO_ZERO_IN_DATE,NO_ZERO_DATE,解决时间戳的问题):进入docker的MySQL容器,编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件,在[mysqld]下添加如下:sql-mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'解决Mysql5.7的密码修改不兼容问题ysql5.7更改密码,以前的方式会报错。代码如下:update mysql.user  set password=password('root') where user='root'提示ERROR 1054 (42S22): Unknown column 'password' in 'field list'最新的更改密码代码是:update mysql.user set authentication_string=password('root') where user='root' 启动docker中 MySQL的时候可以加参数。含义是:
-restart=always 跟随docker启动
--privileged=true 容器root用户享有主机root用户权限
-v 映射主机路径到容器
-e MYSQL_ROOT_PASSWORD=root 设置root用户密码
-d 后台启动
--lower_case_table_names=1 设置表名参数名等忽略大小写
--------------------- 
docker 安装tomcat
1. docker pull tomcat:8.5-jre10-slim进行拉取,完成后输入命令查看docker images查看系统中的所有 docker镜像。
2. 输入命令运行一个容器:docker run -it -d -p 7899:8080 tomcat:8.5-jre10-slim-t 选项让Docker分配一个伪终端( pseudo-tty)并绑定到容器的标准输入上, -i 则让容器的标准输入保持打开。-p 表示端口号,前一个7890是指我们访问tomcat时的端口号(宿主机端口),后一个8080是tomcat启动的一个容器在docker中运行的端口号,指定端口号为了更明确的访问tomcat。输入命令docker ps查看正在运行的容器发现状态是Up表示正在运行
3. 查看tomcat是否启动,输入宿主机IP+端口号:http://192.168.182.129:7899/访问结果如下
4. 这时候一个tomcat进程就启动了,如何向其中部署项目,就需要对容器对应的镜像进行构造,将编译后的文件或.war文件上传到镜像的webapps目录下。还有springboot项目在docker中的部署。在后续内容中会分享
docker安装jdk
1.查找jdk镜像:docker search jdk
2.下载openjdk镜像:docker pull openjdk
3.运行jdk容器:docker run -d -it --name myopenjdk openjdk /bin/bash注意: -it   /bin/bash  一定不能省了,不然jdk起不来,或者懒人写法 -it  bash  也可以。
4.进入容器:docker exec -it myopenjdk /bin/bash或者:
解压到指定目录tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/配置环境变量
使用vi 也可以使用vim
vi /etc/profilejdk8
JAVA_HOME=/usr/local/jdk8
JRE_HOME=/usr/local/jdk8/jre
CLASS_PATH=.:JAVAHOME/libPATH=JAVAHOME/libPATH=JAVA_HOME/bin:JREHOME/bin:JREHOME/bin:PATH
export PATH CLASS_PATH刷新配置文件
source /etc/profile 配置完成 也可以根据容器提交成新的镜像,以便下次使用方便。
docker commit m=”centos7-jdk8” 基础镜像id tagdocker images 就可以看到新生成的镜像了。

35 性能分析:

    

性能分析:
1 vmstat: 虚拟内存统计用法: vmstat [options] [delay[count]]Usage:vmstat [options] [delay [count]]Options:-a, --active           active/inactive memory-f, --forks            number of forks since boot-m, --slabs            slabinfo-n, --one-header       do not redisplay header-s, --stats            event counter statistics-d, --disk             disk statistics-D, --disk-sum         summarize disk statistics-p, --partition <dev>  partition specific statistics-S, --unit <char>      define display unit-w, --wide             wide output-t, --timestamp        show timestamp-h, --help     display this help and exit-V, --version  output version information and exit其中r : 运行和等待 CPU 时间片的进程数。若该值大于系统 CPU 个数,则说明 CPU 不足b : 表示等待资源的进程数swpd : 切换到内存交换区的内存大小(单位 KB)free: 空闲的物理内存的大小,我的机器内存总共2G,剩余92M。buff: Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存cache:直接用来记忆我们打开的文件,给文件做缓冲,把空闲的物理内存的一部分拿来做文件和目录的缓    存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗 内存进程解决掉。so:每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。bi:块设备每秒接收的块数量(读磁盘)(kb/s)bo:块设备每秒发送的块数量(写磁盘)(kb/s)in:每秒CPU的中断次数,包括时间中断cs:每秒上下文切换次数。us:用户进程消耗 CPU 时间百分比sy:内核进程消耗 CPU 时间百分比,sy 的值较高时,则说明内核消耗的 CPU 资源很多id:空闲 CPU 时间百分比wt:IO 等待 CPU 时间百分比2.free 内存使用状况free -h  free -m free -g free -h 2  free -h -s 2
3.uptime 统计当前系统的运行情况
4.netstat 当前网络信息用法:usage: netstat [-vWeenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}netstat [-vWnNcaeol] [<Socket> ...]netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] }     [delay]-r, --route              display routing table-I, --interfaces=<Iface> display interface table for <Iface>-i, --interfaces         display interface table-g, --groups             display multicast group memberships-s, --statistics         display networking statistics (like SNMP)-M, --masquerade         display masqueraded connections-v, --verbose            be verbose-W, --wide               don't truncate IP addresses-n, --numeric            don't resolve names--numeric-hosts          don't resolve host names--numeric-ports          don't resolve port names--numeric-users          don't resolve user names-N, --symbolic           resolve hardware names-e, --extend             display other/more information-p, --programs           display PID/Program name for sockets-o, --timers             display timers-c, --continuous         continuous listing-l, --listening          display listening server sockets-a, --all                display all sockets (default: connected)-F, --fib                display Forwarding Information Base (default)-C, --cache              display routing cache instead of FIB-Z, --context            display SELinux security context for sockets<Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix}--ax25 --ipx --netrom<AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inetList of possible address families (which support routing):inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)x25 (CCITT X.25)其中-a (all)显示所有选项,默认不显示LISTEN相关-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化成数字-l 仅列出有在 Listen (监听) 的服務状态-p 显示建立相关链接的程序名-r 显示路由信息,路由表-e 显示扩展信息,例如uid等-s 按各个协议进行统计-c 每隔一个固定时间,执行该netstat命令。提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到5.top:监控Linux系统状态 如cpu 内存使用其中第一行:14:36:14 当前系统时间days, 4:43 系统已经运行了2天4小时43分钟(在这期间没有重启过)1 users 当前有1个用户登录系统load average: 0.00, 0.01, 0.05 ,后面的三个数分别是1分钟、5分钟、15分钟的负载情况。load     average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻    辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。第二行:Tasks 任务(进程),系统现在共有10个进程,其中处于运行中的有2个,108个在休眠(sleep),stoped状态的有0个,    zombie状态(僵尸)的有0个。第三行:cpu状态us 用户空间占用CPU的百分比sy 内核空间占用CPU的百分比ni 改变过优先级的进程占用CPU的百分比id 空闲CPU百分比wa IO等待占用CPU的百分比hi 硬中断(Hardware IRQ)占用CPU的百分比si 软中断(Software Interrupts)占用CPU的百分比第四行:内存状态total 物理内存总量free 空闲内存总量used 使用中的内存总量buff/cache 缓存的内存量第五行:swap交换分区total 交换区总量free 空闲交换区总量used 使用的交换区总量avail Mem 缓冲的交换区总量第六行:各进程(任务)的状态监控PID 进程idUSER 进程所有者PR 进程优先级NI nice值。负值表示高优先级,正值表示低优先级VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESRES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATASHR 共享内存大小,单位kbS 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程%CPU 上次更新到现在的CPU时间占用百分比%MEM 进程使用的物理内存百分比TIME+ 进程使用的CPU时间总计,单位1/100秒COMMAND 进程名称(命令名/命令行)6.监控java线程数:ps -elf grep java wc -1
7.监控网络客户连接数:netstat -n grep tcp grep 侦听端口 wc -1
8.dmesg | tail :该命令会输出系统日志的最后10行。示例中的输出,可以看见一次内核的oom kill。这些    日志可以帮助排查性能问题。千万不要忘了这一步。
9.mpstat -P ALL 1:该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的。
10.pidstat 1 :pidstat命令输出进程的CPU占用率,该命令会持续输出,并且不会覆盖之前的数据,可以方便观察系统动态。如上的输出,可以看见两个JAVA进程占用了将近1600%的CPU时间,既消耗了大约16个CPU核心的运算资源。
11. iostat -xz 1:r/s, w/s, rkB/s, wkB/s:分别表示每秒读写次数和每秒读写数据量(千字节)。读写量过大,可能会引起性能问题。
await:IO操作的平均等待时间,单位是毫秒。这是应用程序在和磁盘交互时,需要消耗的时间,包括IO等待和实际操作的耗时。如果这个数值过大,可能是硬件设备遇到了瓶颈或者出现故障。
avgqu-sz:向设备发出的请求平均数量。如果这个数值大于1,可能是硬件设备已经饱和(部分前端硬件设备支持并行写入)。
%util:设备利用率。这个数值表示设备的繁忙程度,经验值是如果超过60,可能会影响IO性能(可以参照IO操作平均等待时间)。如果到达100%,说明硬件设备已经饱和。
如果显示的是逻辑设备的数据,那么设备利用率不代表后端实际的硬件设备已经饱和。值得注意的是,即使IO性能不理想,也不一定意味这应用程序性能会不好,可以利用诸如预读取、写缓存等策略提升应用性能。

java工程师面试应该了解的Linux知识点相关推荐

  1. JAVA工程师面试题目大全_绝对值得看

    JAVA工程师面试题目大全 一.单选题 1.下列哪种说法是正确的( D) A)实例方法可直接调用超类的实例方法 B)实例方法可直接调用超类的类方法 C)实例方法可直接调用其他类的实例方法 D)实例方法 ...

  2. 技术直播:1小时突击Java工程师面试核心(限免报名)

    后疫情时代,连程序员这个多金的职业也遭受到了一定程度的打击.从各大招聘网站和多次面试经历中,相信大家已经意识到,面试官对程序员技能体系和项目经验考核似乎更严苛了.你在面试中常常为什么苦恼呢?简历撰写? ...

  3. java工程师面试如何自我介绍

    首先进行自我介绍,如姓名.籍贯.学历,毕业院校: 接下来介绍工作情况,如:在哪工作过多久:工作内容是什么: 之后介绍下专业技能,挑选强项说明(切勿刚接触,之后乱说,否则面试者一问,马上穿帮). 备注: ...

  4. 美团科技 Java工程师_美团网java工程师面试都会问哪些问题?

    美团网java工程师面试主要考察面试者的专业知识,涉及TCP/IP 线程.synHashMap底层.进程关系.servlet生命周期.pringMVC单例异常.Object方法.ConcurrentH ...

  5. Java工程师面试突击第一季

    <Java工程师面试突击第一季>有哪些相关技术点 视频 01_先来看一个互联网java工程师的招聘JD 视频 02_互联网Java工程师面试突击训练课程第一季的内容说明 视频 03_关于互 ...

  6. java工程师-面试知识点总结

    目录 [x] 一.Java基础(语言.集合框架.OOP.设计模式等) [x] 二.Java高级(JavaEE.框架.服务器.工具等) [x] 三.多线程和并发 [x] 四.Java虚拟机 [x] 五. ...

  7. java初级工程师面试需要什么_初级Java工程师面试指导

    一.概要 初级JavaWeb工程师的面试准备 Java基础知识面试指导 Java面向对象面试指导 JSP面试指导 MySQL数据库基础面试指导 Servlet面试指导 二.初级JavaWeb工程师的面 ...

  8. java工程师面试经验分享1-面试准备

    目录 前言 原因分析 面试准备: 1.复习 2.面试题&笔试题 3.简历 4.平台 1.很多朋友说我投了简历但就是一直没有面试通知. 2.很多人会问:我挑公司也需要时间,哪有时间投这么多家呢? ...

  9. java工程师面试常见问题_JAVA软件工程师面试遇到的十个问题,这些你都知道吗?...

    原标题:JAVA软件工程师面试遇到的十个问题,这些你都知道吗? 我们找工作的人都会面临一个难题,那就是面试,根据工作性质的不同,面试的要求也会不公,好点的工作,面试官都会问我们一些问题,尤其是学术性较 ...

最新文章

  1. jQuery Mobile
  2. 【Python基础】Python 流程控制专题总结
  3. matlab仿真软件 高阶调制,高阶差分幅度相移键控调制解调系统及仿真
  4. 数据挖掘—Apriori算法(Java实现)
  5. 大象喝水(信息学奥赛一本通-T1032)
  6. 月球 dem_通过“月球灾害”应对错误信息的流行
  7. indesign打开黑屏 mac_看完这篇文章,90%的电脑黑屏问题都可以解决了!
  8. 黑苹果华硕b85m主板设置_电脑装机 |一次ITX黑苹果主机搭建分享
  9. step7V5.5中文版
  10. 创业公司专题数据(包含stata多种模型代码)
  11. 自动驾驶技术发展的5个阶段和现状
  12. secondary namenode详解
  13. Python:实现counting sort计数排序算法(附完整源码)
  14. 花呗上征信,一文看懂征信所有问题
  15. 【Android Studio】在Mac中更换JDK Location
  16. 基于Arduino的多功能智能交通信号灯的设计与实现 ---------对盲人语音播报,红灯结束时铃声提醒,信号灯倒计时和闯红灯语音劝阻
  17. react hook 闭包陷阱问题
  18. 【论文速读】自动解题+认知推理+常识发现
  19. Android:BroadCast Receiver
  20. WindowsServer2012r2远程桌面多用户同时远程连接设置

热门文章

  1. Netflix的全周期开发者—运行您构建的内容(中英双语)
  2. 小蚁云安全高防IP防护效果怎么样?
  3. 初始化MySQL时可能遇到的问题
  4. WPF毛笔字实现过程
  5. 【转帖】基于NDIS(网络驱动接口标准)包拦截技术
  6. Revit插件 | Unbelievable,有人居然自己写代码搞『批量喷头 』
  7. 急需国产化替代的重要的工程软件有哪些?
  8. LeetCode 力扣 529. 扫雷游戏 minesweeper DFS
  9. C# Textbox屏蔽中文输入法
  10. QTreeWidget简单使用之一