"Nice" is actually a command.
table of contents
I'm inusuki from the System Solutions Department, and I'm an omnivorous nerd who loves games and anime.
This time, I will write a blog about the "nice" command used in UNIX-based OS (Linux, etc.).
About the nice command
The nice command a command that changes the relative priority of a process .
There is a similar command called "renice", but this one changes what is being executed (the format is also slightly different)
*This time, to avoid confusion, I have deliberately not included it.
Priority & option summary
About priorities
The priority (nice value) adjusted with a value from -20 to 19 ,
The more negative it goes, the higher the priority , and the more positive it goes, the lower the priority (why...)
Note that are required to increase the priority
priority | value | remarks |
high | -20 | Modifiable only by root user |
↕ | 0 | Initial value |
low | 19 | Can be changed by root user or general user |
About options
Here are nice command options
option | explanation |
-【value】 | Increase or decrease the priority by a specified value |
-n [value] | Increase or decrease the priority by a specified value (*If no value is specified, 10 will be applied by default) |
--adjustment=[value] | |
--help | Show help |
--version | Show version |
…yes! There are various things, but basically you should be able to remember -n [value]
(* Please note that if you do not specify it explicitly, the default value (+10) will be specified.
For example, run a script called beyond.sh with priority -5, the format is as follows.
# nice -n -5 /opt/beyond.sh
If you compare it with other processes, you can see that it is being executed with a priority (NI) of -5.
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2818 root 15 -5 13004 1416 1208 S 0.0 0.3 0:00.05 /bin/bash /opt/beyond.sh
How to check the nice value
Confirmation method (example)
You can check the relative priority (NI) of currently running processes ps -l or top -c
ps -l
# ps -l FS UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 2526 2503 0 80 0 - 35262 poll_s pts/0 00:00:00 sudo 4 S 0 2528 2526 0 80 0 - 22938 do_wai pts/ 0 00:00:00 su 4 S 0 2529 2528 0 80 0 - 3946 do_wai pts/0 00:00:00 bash 0 R 0 3315 2529 0 80 0 - 13267 - pts/0 00:00:00 ps
top -c
#top -c PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 571 root 20 0 474024 17456 6156 S 0.0 3.5 0:05.50 /usr/bin/python2 -Es /usr/sbin/tuned -l -P 341 polkitd 20 0 613016 9184 5076 S 0.0 1.8 0:00.20 /usr/lib/polkit-1/polkitd --no-debug 1474 root 20 0 447996 8968 6708 S 0.0 1.8 0:01.16 /usr/sbin/NetworkManager --no- daemon 1 root 20 0 127992 6612 4128 S 0.0 1.3 0:03.88 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 1499 root 20 0 102904 5512 3456 S 0.0 1.1 0:00.02 /sbin/ dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dhclient-+ 2818 root 15 -5 13004 1416 1208 S 0.0 0.3 0:00.05 /bin/bash /opt/beyond.sh
Benefits of changing
By explicitly specifying the priority, you can allocate CPU resources to other processes with higher priority.
In other words, the load on the CPU can be relatively reduced (apparently)!
...Hmm, I don't really understand even if you say that.
From a human perspective, I think it's either you're assigned an important job while you're busy , or you're assigned a job that gives you a little more leeway
If you're given a job like the former, it's hard to handle, and it's hard to rearrange your schedule.
I think if you are assigned tasks with a set priority, you can handle them more smoothly even if you are doing other tasks at the same time
The same goes for the CPU (I hope I can convey that)
When do you use it?
Now, when should we use this nice command?
I have picked up some useful items!
- When exporting large amounts of data using mysqldump
- When greping from a large amount of logs using regular expressions for post-mortem investigation
- When performing heavy batch processing
And so on...
It can be used when you want to pass non-urgent and heavy processing without pulling the processing of other processes
Which part is nice?
Well, I've done a lot of research on the nice command so far, but...
What's so nice about this nice command...?
(I'm curious!)
I'm sure there are some people who like this, so I'll leave it here as a column.
I looked into the origin of the nice command!
When I looked into it, there were various theories,
「How kind of you to lower your priority for the sake of another user!」
" It's very kind of you to take care of the CPU. "
It seems to be a command that expresses kindness or praise for the user
(That's why the value becomes positive when the priority is lowered...I didn't know that.)
summary
A brief summary of the contents of this article is as follows.
- The basic format is nice -n [value]
- You can change the priority and execute to reduce the load on the CPU.
- If it is negative, the priority is high, and if it is positive, the priority is low (nice value: -20~19)
- Root privileges are required to raise the priority
lastly
Thank you for reading this humble blog to the end.
I will continue to post, albeit irregularly, so please check back.
Please excuse me then.