10

linux 大总结

 3 years ago
source link: https://blog.csdn.net/u011624267/article/details/118278228
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

1.Linux介绍

Linux 内核最初只是由芬兰人林纳斯·托瓦兹( Linus Torvalds) 在赫尔辛基大学上学时出于个人爱好而编写的。 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。 Linux 能运 行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。 Linux 继承 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、 Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等,其中以 centos在企业中使用最广。

2.Centos 安装

1)下载地址

官网下载链接: http://isoredirect.centos.org/centos/7/isos/x86_64/

阿里云站点: http://mirrors.aliyun.com/centos/7/isos/x86_64/

2)安装 VMWARE15.5

  参考地址:https://blog.csdn.net/weixin_43921994/article/details/105765088

vmware是一个虚拟化工具,它可以安装在我们windows,然后在 vmware里安装 linux系统

3)在VMWARE中安装linux系统

第一步 :选择创建新的虚拟机

第二步:选择默认典型,下一步

第三步:选择默认的稍后安装操作系统

第四步:选择linux和对应的安装版本

第五步:安装位置选择资源充足的盘

第六步:磁盘大小更改成40G,大数据组件需要较多的存储,资源不充足最少 20G

第七步:完成之后界面

第八步:选择上面虚拟机中的设置修改

#内存:改为 2-4GB(电脑总内存 8GB就每台给 2G,电脑内存 16GB就每台给 4G)

#CPU:可以选择1*2或 2*2核心的配置

#ISO 镜像选择 :一定选择自己准备的ISO镜像的路径

#网络:此处选择 nat模

第九步:选择第一行的install安装

默认进入选型是第二个,用鼠标左键点入进入黑窗口,按键盘的向上键跳到第一行,选择Enter确认安装想要把鼠标跳出黑窗口,按ctrl+alt键

第十步:等待出现这个界面,选择英文即可

第十一步进入配置修改界面

#修改时间,日期,时区选择亚洲上海,选择左上角 done保存退出

#更改安装包的方式,默认 mininal安装代表最小化;更改安装方式为 GNOME desktop(这是桌面化安装生产机房一般采专用此方式 ),完成后左 上角选择 done。

#配置 hosts主机名和网络,此处我们只设置一下 host名字,进入系统后采用命令行的方式修改也可以

我们将host名设置为 node01,选择 apply应用,左上角 done退出。其中 ens33是网卡的名字

第十二步:选择右下角开始安装

第十三步:设置root用户密码和普通用户的密码

#更改 root密码: ********

#设置普通用户名称 test,密码 *********

第十四步:等待安装

第十五步:安装完成,选择reboot重启

#设置 lisense许可证

第十六步:一路next

4)网络配置

选择虚拟网络编辑器

选择 nat模式,然后点击右下角的更改设置

设置子网 IP:192.168.52.0

子网掩码:255.255.255.0

个人电脑网络设置:找到网络连接中的VMnet8

网卡设置:#vim /etc/sysconfig/network-scripts/ifcfg-ens33 进入网卡设置

#重启网卡 service network restart

测试网络是否连通外网:ping www.baidu.com

到此 centos7.4安装完成,网络也配置成功

5)Linux远程连接工具

Linux系统中是通过 SSH服务实现的远程登录功能,默认 ssh服 务端口号为 22。Window系统上Linux 远程登录客户端有 SecureCRT, Putty, SSH Secure Shell,XShell等

SecureCRT安装:https://blog.csdn.net/qq_39052513/article/details/100272502

3.Linux文件与目录结构

Linux系统中一切皆文件

2)目录结构

4.linux中文本编辑器

vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富

5.linux常用基本命令

1)基础快捷键

2)文件命令

3)文本处理类命令

4)系统信息命令

5)压缩/解压命令

6)网络命令

7)权限命令

8)用户管理命令

9)用户组管理命令

10)搜索查找命令

11)磁盘分区挂载命令

12)进程管理命令

13)crond系统定时任务

Crontab -e 编辑定时文件

参考文档:https://blog.csdn.net/qq_22172133/article/details/81263736

14)rpm包管理与yum管理

15)ssh免密

16)防火墙

6.linux实用故障排查

1)排查思路

大数据集群运行在linux系统上总会遇见各种各样的问题,我们要定位问题,基本从这几个方面入手排查: cpu, 内存,磁盘 IO,网络, GC等。

2) cpu

一些概念:多核,超线程,CPU频率( 2.2GHZ)(节能模式,普通模式,超能模式,bios里设置, 搭集群要注意下这个参数尽量关闭节能模式) bios里可以关闭 。

#1 查看物理 CPU个数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

#2查看逻辑 cpu个数
cat /proc/cpuinfo |grep "processor"|wc -l

#3 在生产集群中我们通常通过 top来查看 cpu的使用率来判断系统
的负载情况 ,Top 然后按 1,可以看到 cpu的使用率

#1,常见内存大小 64 G--- 128G-- 256G--- 512G,通过 free -g来查看系 统内存是否不足

4)磁盘IO

#1磁盘种类:
sata(150M/s左右 ) sas(300 M/S左右) ssd(最快也最贵)一般磁盘 2T-4T,服务器支持的最大存储也不同,比较常见的 48T,一 般服务器可以支持 12-24块盘 。

#2磁盘 io的查看: 可以定位是否是因为 io过大导致性能下降
iostat -mx 2
如果没有这个命令:yum install -y sysstat

#3 df -h 查看磁盘空间

#4 df -T 查看磁盘的格式化的格式,主流一般是 xfs和 ext4,系统盘默认是 xfs,后续添加数据盘尽量也是 xfs格式这样统一比较好,也方便写脚本批量挂盘

#5 lsblk 能够查看盘与分区以及 ssd盘,用 fdisk查看盘可能识别不到ssd

#6 fdisk -l 查看磁盘与未挂载的磁盘和分区信息

#7 cat /etc/fstab 查看磁盘挂载信息,新加磁盘要手动永久挂在需要在这个配置文件里添加, 6列。如果这个文件写错了,重启服务器正常模式下是启动不了的!!!

#1 查看是否 ping通:ping IP

#2 查看某端口是否被监听
示例:比如你起启动datanode没有启动,查看日志报错: Address in used ,翻译过来就是端口被占用,那你得查看下这个端口被哪个程序占用了,就用 netatat -anp|grep 端口号,就可以知道它的进程,比如下图进程pid就是 107484,就可以用 kill -9 PID强制杀死

#3网卡模式配置( bound6,负载均衡

6)系统负载

Top
Uptime
W
cat /proc/loadavg

7)GC问题

#1是否 full GC(GC是 java里面 JVM的东西,不了解的可以去看下)
Jps查出要查看的 pid,用 jstat -gcutil pid,看第四列 O如果 100%就是 fullGC

8)日志查看

#1首先要知道日志的位置 ,一种是去配置文件查看有没有配置相关位置,一种是去通过进程查看如下 用 ps -ef |grep pid通过显示出来的信息可以找到日志的位置 。

# 2查看日志
实时查看日志文件后100行: tail -f 100 file
静态查看:vim filelog,然后 可以通过关键字 error/warn等查

7.linux运维之生产监控工具

1.zabbix:https://blog.51cto.com/u_14154700/2419934

2.nagios(网络监控):https://www.cnblogs.com/52-qq/p/9773880.html

3.Prometheus(普罗米修斯 ):https://blog.csdn.net/csolo/article/details/82460539

4.ganglia (hadoop集群监控常用工具):https://www.cnblogs.com/marility/p/9444357.html

8.自动化运维工具ansible与pdsh

https://www.cnblogs.com/keerya/p/7987886.html#_label2_0_1

https://blog.csdn.net/weixin_42193400/article/details/82148974

9.并行管理工具 pdsh与 pssh

相关文档:https://www.cnblogs.com/goldenblade/p/9604642.html

10.linux知识点扩展

1)运行级别

运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
运行级别 1:单用户工作状态 root权限,用于系统维护,禁止远程登陆运行级别

2:多用户状态 (没有 NFS) 运行级别

3:完全的多用户状态 (有 NFS),登陆后进入控制台命令行模式运行级别

4:系统未使用,保留运行级别

5:X11控制台,登陆后进入图形 GUI模式 运行级别 6:系统正常关闭并重启,默认运行级别不设为

6,否则不能正常启动

2)运行级别原理

1.在目录 /etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)

2.在/etc/rc.d下有 7个名为 rcN.d的目录,对应系统的 7个运行级别

3.rcN.d目录下都是一些符号链接文件,这些链接文件都指向 init.d目 录下的 service脚本文件,命名规则为 K+nn+服务名或 S+nn+服务名,其中 nn为两位数字。
4。系统会根据指定的运行级别进入对应的 rcN.d目录,并按照文件名顺序检索目录下的链接文件
对于以 K开头的文件,系统将终止对应的服务对于以 S开头的文件,系统将启动对应的服务
5。查看运行级别用: runlevel

6。进入其它运行级别用: init N

7。另外 init0为关机, init 6为重启系统
        由于现在的 Linux系统安装完后就运行在第 5个级别,即系统启动后直接进入图形界面,而不用在字符模式下登录后用 startx或者 xinit 来起动图形界面。建议在系统安装完成后把系统的默认运行等级设置在第 3级,在字符终端登录后,再手工输入 startx 命令起动图 形界面。可以用如下的方法修改:

用文本编辑器修改 /etc/inittab文件:

把代码 : id:5:initdefault:这一行,修改成代码 : id:3:initdefault:保存后就 reboot重起,系统就默认起动到字符界面。不同运行级别之间的 差别的在于系 统默认起动的服务的不同,如运行级别 3默认不启动 X图形界面服务,而运行级别 5 却默认起动。

本质上是没有区别的,更无所谓不同级别间功能强弱的问题。用户完全可自给定义不同级别的默认服务。在任何运行级别,用户都可用 init 命令来切换到其他运行级别。

3)开机过程

通电 ->BIOS->MBR->GRUB->Kernel->/sbin/init->Runlevel

1.BIOS

BIOS: Basic Input/Output System 执行系统完整性检查,从软盘,光盘,硬盘中查找 boot loader(取决与你的启动顺序)BIOS的主要功能就是搜索并加载执行 MBR boot loader程序

2.MBR

MBR: Master Boot Record. MBR位于主盘的第一快扇区,如 :/dev/hda或者 /dev/sda.MBR共 512bytes. 1-446bytes存放主要的 boot loader信息, 447~510bytes存放 分区表信息,最后 2个 bytes存放 mbr验证信息。MBR包含 GRUB信息。(或者 LILO信息) MBR 的主要功能就是加载并执行 GRUB boot loader。

3.GRUB

GRUB:Grand Unified Bootloader. 如果你有多个 kernel p_w_picpaths安装在你的系统中,你可以通过GRUB选择那个被执行。GRUB启动的时候会有个选择界面,几秒钟没有任何输入的话,将会
加载你 GRUB配置文件中指定的默认 kernel p_w_picpath 。

GRUB的配置文件:/boot/grub/grub.conf (/etc/grub.conf is a link to this).

GRUB 的主要功能就是加载并执行 Kernel and initrd p_w_picpaths.

4.Kernel

挂载 grub.conf 中指定 “root=” 的根目录
执行 /sbin/init 程序 因为 /sbin/init 是 LINUX kernel执行的第一程序,理所当然 /sbin/init 的 PID为 1. ‘ps -ef | grep init’ 命令可以验证 .

initrd: Initial RAM Disk. 在 kernel完全起来, root文件系统被挂载之前, initrd被 kernel当做 临时 root文件系统。当然 initrd还包含了一些编译好的驱动,这些驱动用来在启动的时候访问硬件。

5.Init

查看 /etc/inittab配置文件来决定 Linux的运行( run level)。

LINUX的运行级别:
0 – halt (关机 )

1 – Single user mode (单用户模式 )

2 – Multiuser, without NFS (多用户模式 ,无网络 )

3 – Full multiuser mode (多用户模式 ,有网络 ,无图形界面 )

4 – unused (没用 ,用户自定义 )

5 – X11 (多用户模式 ,有网络 ,有图形界面 )

6– reboot (重启 )

Init从/etc/inittab配置文件中得到默认启动级别,然后加载并执行相应级别的程序 . 执行 ‘grep initdefault /etc/inittab’ 命令可得到你系统的默认启动级别 。

6.Runlevel programs

当 LINUX系统启动完成后,你会发现许多的服务进程也启动了,例如:“starting sendmail …. OK”. 这些服务程序都放在相应 LINUX系 统启动级别的文件夹下面。根据你 LINUX默认启动级别,系统将会执行以下其中一个文件架下面的服务程序:

Run level 0 – /etc/rc.d/rc0.d/

Run level 1 – /etc/rc.d/rc1.d/

Run level 2 – /etc/rc.d/rc2.d/

Run level 3 – /etc/rc.d/rc3.d/

Run level 4 – /etc/rc.d/rc4.d/

Run level 5 – /etc/rc.d/rc5.d/

Run level 6 – /etc/rc.d/rc6.d/

11.linux的零拷贝

参考文档:https://www.cnblogs.com/skying555/p/11122072.html

“零拷贝 ” 描述的是 CPU不执行拷贝数据从一块内存区域到另一块区域的任务的计算机操作。它通常用于在网络上传输文件时节省 CPU周期和内存带宽。简单来说,零拷贝就是一种避免 CPU 将数据从一 块存储拷贝到另外一块存储的技术。
“零拷贝 ”正是通过消除这些 多余的拷贝来提升性能的 。在数据传输的过程中, 避免数据在内核空间缓冲区和用户空间缓冲区之间进行拷贝 ,以及数据在内核空间缓冲区内的 CPU拷贝 。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK