一、nice命令
Linux nice命令以更改过的优先序来执行程序,如果未指定程序,则会印出目前的排程优先序,内定默认的 adjustment 为 10,范围为 -20(最高优先序)到 19(最低优先序)。
使用权限:所有使用者。
语法
nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]
参数说明:
- -n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
- --help 显示求助讯息
- --version 显示版本资讯
实例
设置程序运行时的优先级
# vi & //后台运行 [1] 15297 # nice vi & //设置默认优先级 [2] 15298 [1]+ Stopped vi # nice -n 19 vi & //设置优先级为19 [3] 15299 [2]+ Stopped nice vi # nice -n -20 vi & //设置优先级为 -20 [4] 15300 [3]+ Stopped nice -n 19 vi # ps -l //显示进程 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 15278 15212 0 80 0 - 1208 wait pts/2 00:00:00 bash 0 T 0 15297 15278 0 80 0 - 2687 signal pts/2 00:00:00 vi 0 T 0 15298 15278 0 90 10 - 2687 signal pts/2 00:00:00 vi 0 T 0 15299 15278 1 99 19 - 2687 signal pts/2 00:00:00 vi 4 T 0 15300 15278 3 60 -20 - 2687 signal pts/2 00:00:00 vi 4 R 0 15301 15278 0 80 0 - 625 - pts/2 00:00:00 ps [4]+ Stopped nice -n -20 vi
将 ls 的优先序加 1 并执行
nice -n 1 ls
将 ls 的优先序加 10 并执行
nice ls
注意:
优先序 (priority) 为操作系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。
二、xz命令
2.1、XZ 基础信息
米妮文学网 m.amini.net
XZ 压缩比比较高,在这里没有进行详细对比。
官网链接: https://tukaani.org/xz/
官网介绍到: 压缩后的文件大小 gzip 小30%,比bzip2小15%。
我测试 一个 112M 的文件,xz 压缩完后 4.5M, gz 压缩完后 16M, biz2 缩完后7.6M.
压缩比: xz >biz2 > gzip
2.2、安装
-
yum install epel-release
-
yum install xz
2.3、详解
2.3.1、常用的参数
默认压缩后的文件后缀为 xz
-
-z 强制执行压缩, 默认不保留源文件。压缩后的文件名为源文件.xz
-
-d 强制执行解压缩
-
-l 列出压缩文件的信息
-
-k 保留源文件不要删除
-
-f 强制覆盖输出文件和压缩链接
-
-c 写入到标准输出,输入文件不要删除
-
-0..-9 压缩比例,默认为6
-
-e 使用更多的 CPU time 来进行压缩,提高压缩率。不会影响解压时所需要的内存。
-
-T 指定线程数,默认是 1 ,当设置为 0 时使用和机器核心一样多的线程。
-
--format= 指定压缩输出格式,可以是 raw、xz、lzma
-
-v 显示更详细的信息
注意点: 压缩后的文件时在和源文件同一个目录。当我们压缩的文件为 /home/nginx/logs/error.log-20191126 ,当我们在任意目录执行完
xz /home/nginx/logs/error.log-20191126
后,压缩后的文件路径是/home/nginx/logs/error.log-20191126.xz
.
2.3.2、 常用命令
xz 进行压缩的时候,默认使用的内存为 总内存的 5% 左右。
- 压缩文件(源文件不保留)
xz /home/nginx/logs/error.log-20191126
- 压缩文件(源文件保留)
xz -k /home/nginx/logs/error.log-20191126
压缩的时候设定最大使用内存
--memlimit-compress=
示例:--mem‐
limit-compress=80MiB
- 解压缩文件
xz -d /home/nginx/logs/error.log-20191126.xz
或者
unxz /home/nginx/logs/error.log-20191126.xz
解压缩的时候设定最大使用内存
--memlimit-decompress=
- 指定多线程数来进行压缩
xz -T 4 /home/nginx/logs/error.log-20191126
2.4、扩展
2.4.1、unxz
xz 压缩包的解压命令
2.4.2、xzcat
xz --decompress --stdout
查看压缩文件的内容
2.4.3、lzma
xz --format=lzma
压缩格式为 lzma
2.4.4、unlzma
xz --format=lzma --decompress
解压 压缩格式为 lzma 的压缩包
2.4.5、lzcat
xz --format=lzma --decompress --stdout
三、结合使用
对大文件进行压缩,同时降低压缩线程的CPU占用率,可以使用下面命令
nice -n 19 xz -0 -T 4 /home/nginx/logs/error.log-20191126