Linux使用 -- 变量
命名规则 字母、数字、下划线 不以字母开头 赋值 基本概念 Shell变量是弱类型的变量 方式 变量名=变量值 a=123,等号左右不能出现空格 使用let为变量赋值 let a=10+20,Shell是解释性语言,尽量不要进行运算 将命令赋值给变量 l=ls 将命令结果赋值给变量,使用$()或者`` letc=$(ls -l /etc) 变量值有空格等特殊字符可以包含在""或者''中 a='hello world' 1234567[root@localhost ~]# a=123[root@localhost ~]# a =123-bash: a: 未找到命令[root@localhost ~]# a = 123-bash: a: 未找到命令[root@localhost ~]# a= 123-bash: 123: 未找到命令 123[root@localhost ~]# l=ls[root@localhost ~]# $lanaconda-ks.cfg a.sh a.txt b.txt comb...
Linux使用 -- 管道 + 重定向
管道 管道是进程通信的方式 信号也是进程通信的方式,例如kill -9 pid是让进程处于某种运行状态 匿名管道(管道符|)是Shell编程经常用到的通信工具 管道符是|,将前一个命令执行的结果传递给后面的命令 ;只是隔开多条命令,顺序执行,命令之间没有任何关系 Session A1234567$ cat | tail -f | ps -fUID PID PPID C STIME TTY TIME CMDroot 2348 2344 0 16:12 pts/1 00:00:00 -bashroot 2971 2348 0 19:13 pts/1 00:00:00 catroot 2972 2348 0 19:13 pts/1 00:00:00 tail -froot 2973 2348 0 19:13 pts/1 00:00:00 ps -f cat的本质:将文本内容作为输入,与终端建立连接 管道符|给两边的外部命令分别创建了对应的子进程,对应pid为2...
Linux使用 -- 执行脚本方式
2.sh12345#!/bin/bash# demo 2.shcd /tmppwd 执行方式子进程bash ./filename.sh在当前终端下面产生一个bash子进程,bash子进程再去解释filename.sh(不需要x权限) 12345678[root@localhost ~]# ll 2.sh-rw-r--r--. 1 root root 37 10月 16 16:30 2.sh[root@localhost ~]# bash 2.sh/tmp[root@localhost ~]# pwd/root ./filename.sh同样产生一个子进程,但使用的是Sha-Bang(即#!)来解释filename.sh 12345678910[root@localhost ~]# ./2.sh-bash: ./2.sh: 权限不够[root@localhost ~]# chmod u+x 2.sh[root@localhost ~]# ./2.sh/tmp[root@localhost ~]# pwd/root 当前进程source ./filename.sh在当...
Linux使用 -- sar + iftop
sar1yum install sysstat CPU12345678910$ sar -u ALL 1 5Linux 2.6.32-696.el6.x86_64 (xxx) 2019年10月15日 _x86_64_ (40 CPU)17时25分50秒 CPU %usr %nice %sys %iowait %steal %irq %soft %guest %idle17时25分51秒 all 14.75 0.00 1.13 0.00 0.00 0.00 0.25 0.00 83.8717时25分52秒 all 11.17 0.00 1.74 0.00 0.00 0.00 0.25 0.00 86.8417时25分53秒 all 12.31 0.00 1.61 0.00 0....
Linux使用 -- ext4(inode + datablock)
基本结构 超级块 在ext4文件系统最开头的部分 记录了整个文件系统中所包含的文件的元数据,df命令读取的就是超级块中的内容,所以执行很快 超级块副本 inode 记录每个文件的大小(非实际大小,用于ls命令)、权限、编号等信息,但文件名是记录在父目录的inode中 文件的r权限,是读取文件内容;而目录的r权限,是读取目录下的文件名称 datablock 记录数据,inode和datablock是链式结构 ls统计的是inode里面的文件大小,而du统计的是文件datablock的总大小 12[root@localhost ~]# ls -li anaconda-ks.cfg33574978 -rw-------. 1 root root 1260 12月 15 19:25 anaconda-ks.cfg ext412345678910111213[root@localhost sdb1]# df -Th文件系统 类型 容量 已用 可用 已用% 挂载点devtmpfs devtmpfs 475M 0 ...
Linux使用 -- ls VS du
duestimate file space usage 非空洞文件12345678[root@localhost dd]# dd if=/dev/zero bs=4M count=10 of=afile记录了10+0 的读入记录了10+0 的写出41943040字节(42 MB)已复制,0.0569579 秒,736 MB/秒[root@localhost dd]# ls -lh afile-rw-r--r--. 1 root root 40M 12月 16 20:55 afile[root@localhost dd]# du -sh afile40M afile 空洞文件12345678[root@localhost dd]# dd if=/dev/zero bs=4M count=10 seek=20 of=bfile记录了10+0 的读入记录了10+0 的写出41943040字节(42 MB)已复制,0.0357481 秒,1.2 GB/秒[root@localhost dd]# ls -lh bfile-rw-r--r--. 1 root root 120M 12月 16 20:58...
Linux使用 -- 守护进程
nohup & VS 守护进程 nohup命令使得进程忽略hangup(挂起)信号 守护进程 不需要终端就能启动 输出会打印到特定的文件中 守护进程占用的目录是根目录 nohup &Session A1234567891011[root@localhost ~]# tail -f /var/log/messagesDec 16 06:39:44 localhost NetworkManager[758]: <info> [1576496384.0844] dhcp4 (ens33): nameserver '192.168.206.2'Dec 16 06:39:44 localhost NetworkManager[758]: <info> [1576496384.0844] dhcp4 (ens33): domain name 'localdomain'Dec 16 06:39:44 localhost NetworkManager[758]: <info> [1576496384.08...
Linux使用 -- 帮助命令
man Executable programs or shell commands System calls (functions provided by the kernel) Library calls (functions within program libraries) Special files (usually found in /dev) File formats and conventions eg /etc/passwd Games Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) System administration commands (usually only for root) Kernel routines [Non standard] 123456$ ls /usr/bin/passwd /etc/passwd/etc/passwd /usr/bin/passwd$ man 1 passwd$ man 5 passwd$ ma...
Kafka -- 调优
调优目标 主要目标:高吞吐量、低延时 吞吐量 即TPS,指的是Broker端进程或Client端应用程序每秒能处理的字节数或消息数 延时,可以有两种理解 从Producer发送消息到Broker持久化完成之间的时间间隔 端到端的延时,即从Producer发送消息到Consumer成功消费该消息的总时长 优化漏斗优化漏斗是调优过程中的分层漏斗,层级越靠上,调优的效果越明显 操作系统层 mount -o noatime 在挂载文件系统时禁用atime(Access Time)更新,记录的是文件最后被访问的时间 记录atime需要操作系统访问inode资源,禁用atime可以避免inode访问时间的写入操作 文件系统选择ext4、XFS、ZFS 将swappiness设置成一个很小的值(1~10,默认是60),防止Linux的OOM Killer开启随机杀掉进程 swappiness=0,并不会禁止对swap的使用,只是最大限度地降低使用swap的可能性 因为一旦设置为0,当物理内存耗尽时,操作系统会触发OOM Killer OOM Killer会随机挑选一个进程然后kill掉,不...
Kafka -- 监控
主机监控 主机监控:监控Kafka集群Broker所在的节点机器的性能 常见的主机监控指标 机器负载 CPU使用率 内存使用率,包括空闲内存和已使用内存 磁盘IO使用率,包括读使用率和写使用率 网络IO使用率 TCP连接数 打开文件数 inode使用情况 JVM监控 重点指标 Full GC发生频率和时长 活跃对象大小 应用线程总数 设置堆大小 经历一次Full GC后,堆上存活的活跃对象大小为S,可以安全地将老年代堆大小设置为1.5S或者2S 从0.9.0.0版本开始,社区将默认的GC收集器设置为G1,而G1的Full GC是由单线程执行的,速度非常慢 一旦发现Broker进程频繁Full GC,可以开启G1的**-XX:+PrintAdaptiveSizePolicy,获知引发Full GC的原因** 集群监控 查看Broker进程是否启动,端口是否建立 在容器化的Kafka环境,容器虽然启动成功,但由于网络配置有误,会出现进程已经启动但端口未成功监听的情形 查看Broker端关键日志 Broker端服务器日志server.log – 最重要 控制器日志controlle...














