Linux 常用操作总结

本篇博客记录了些 Linux 系统中的常用操作,以备后需。

清理过大的 cache 内存

清理过大的cache内存,系统中运行大量容器,cache过大

/proc是一个虚拟文件系统,可以通过对它的读写操作,做为与kernel实体间进行通信的一种手段。也就是说,可以通过修改/proc中的文件,来对当前kernel的行为做出调整。我们可以通过调整/proc/sys/vm/drop_caches来释放内存。

1)查看 /proc/sys/vm/drop_caches 的值,默认为 0

2)执行sync命令

1
sync

sync 命令运行 sync 子命令。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。

3)将/proc/sys/vm/drop_caches的值设置为3

1
2
3
echo 3 > /proc/sys/vm/drop_caches
#查看/proc/sys/vm/drop_caches的当前值
cat /proc/sys/vm/drop_caches

drop_caches 数值的含义:

  • echo 1 > /proc/sys/vm/drop_caches #仅清除页面缓存
  • echo 2 > /proc/sys/vm/drop_caches #清除目录项和inode
  • echo 3 > /proc/sys/vm/drop_caches #清除页面缓存,目录项和inode

挂载磁盘

1、使用 fdisk –l(查看当前系统所有硬盘及分区情况), 找到待挂载的磁盘。

2、创建分区待挂载的目录,例如 /xdhuxc,必须是空目录。

1
mkdir /xdhuxc

3、格式化新建的磁盘分区。

1
mkfs.ext4 /dev/vdb

4、修改 /etc/fstab,添加如下内容,将分区信息写进去。

1
/dev/vdb  /xdhuxc      ext4    defaults        0 0

5、执行如下命令,加载所有在fstab中记录的文件系统。

1
mount –a

打包时的文件格式转换和赋权

1
2
find ./ -regex '.*\.sh$' -or -regex '.*\.exp$' | xargs chmod 755 > /dev/null
find ./ -regex '.*\.sh$' -or -regex '.*\.exp$' | xargs dos2unix -q

使用curl不产生输出

1
curl -s http://www.baidu.com 2>&1 > /dev/null

调整进程优先级

nice 命令

nice 命令可以修改进程的优先级,进而调整进程的调度。nice 命令是在进程启动时调整进程的优先级。nice 值的范围为:[-20, 19],-20 表示进程的最高优先级,19 表示进程的最低优先级。Linux 进程的默认 nice 值为:0。使用 nice 可调整进程的优先级,这样调度器就会依据进程优先级为其分配 CPU 资源。

1、执行命令 sleep 300 &,然后查看该进程

没有 nice 命令,进程优先级数值为 0,进程优先级 NI 默认值为:0

2、执行命令 nice sleep 300 &,然后查看该进程

使用 nice 命令后,优先级 NI 的数值为 10,nice 命令将 NI 默认调整为 10,降低了该进程的优先级。

3、执行命令 nice -n 15 sleep 300 &,然后查看该进程

在默认值 0 的基础上加 15,非管理员可以将 NI 值调整为 0~19 之间的任意值,降低了进程的优先级。

4、执行命令 nice -n -15 sleep 300 &,然后查看该进程

仅管理员可以在默认值的基础上 -n,调高进程的优先级,普通用户无权调高进程优先级。

在实际应用中,如果要运行一个 CPU 密集型程序,就可以通过 nice 命令来启动它,这样可以保证其进程获得更高的优先级,即使服务器或者台式机在负载很重的情况下,也可以快速响应。

renice 命令

renice 命令可以重新调整进程执行的优先级,可以指定群组或者用户名调整进程优先级等级,并修改隶属于该群组或用户的所有程序优先级。等级范围为:[-20, 19],同样,只有管理员可以调高优先级,用于调整运行中的进程的优先级。

使用方法和 nice 相同

一个紧急进程,需要更多的 CPU 资源时,可以调高运行中的该进程。

配置 CentOS 但需要不更新 DNS

配置CentOS不更新DNS,即不刷新/etc/resolv.conf文件

修改配置 /etc/NetworkManager/NetworkManager.conf,添加 dns=none,修改完成后,使用 systemctl restart NetworkManager 命令重启 NetworkManager

升级 Linux 内核

1、导入ELRepo

1
2
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org (external link)
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm (external link)

2、列出可用的内核软件包

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@wanghuan-private-test-5 yum.repos.d]# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
elrepo-kernel                                                                                                                                   | 2.9 kB  00:00:00     
elrepo-kernel/primary_db                                                                                                                        | 1.8 MB  00:00:13     
Loading mirror speeds from cached hostfile
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
Available Packages
kernel-lt.x86_64                                                                   4.4.142-1.el7.elrepo                                                   elrepo-kernel
kernel-lt-devel.x86_64                                                             4.4.142-1.el7.elrepo                                                   elrepo-kernel
kernel-lt-doc.noarch                                                               4.4.142-1.el7.elrepo                                                   elrepo-kernel
kernel-lt-headers.x86_64                                                           4.4.142-1.el7.elrepo                                                   elrepo-kernel
kernel-lt-tools.x86_64                                                             4.4.142-1.el7.elrepo                                                   elrepo-kernel
kernel-lt-tools-libs.x86_64                                                        4.4.142-1.el7.elrepo                                                   elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                                                  4.4.142-1.el7.elrepo                                                   elrepo-kernel
kernel-ml.x86_64                                                                   4.17.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-devel.x86_64                                                             4.17.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-doc.noarch                                                               4.17.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-headers.x86_64                                                           4.17.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-tools.x86_64                                                             4.17.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-tools-libs.x86_64                                                        4.17.8-1.el7.elrepo                                                    elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                                                  4.17.8-1.el7.elrepo                                                    elrepo-kernel
perf.x86_64                                                                        4.17.8-1.el7.elrepo                                                    elrepo-kernel
python-perf.x86_64                                                                 4.17.8-1.el7.elrepo                                                    elrepo-kernel

3、安装最新的主线稳定内核

1
2
yum --enablerepo=elrepo-kernel install kernel-ml
yum install -y kernel-ml.x86_64 --enablerepo=elrepo-kernel

4、设置GRUB默认的内核版本

1
2
3
grub2-set-default 0 # 设置GRUB初始化页面的第一个内核将作为默认内核。
grub2-mkconfig -o /boot/grub2/grub.cfg # 重新创建内核配置。
reboot  # 重新启动机器才能使新内核生效。
updatedupdated2018-08-192018-08-19
加载评论