DevOps_UNIX / Linux_10_UNIX / Linux Process Priorities ගැන ගැබුරින්

ja2k17ja

Member
May 10, 2017
185
166
0
තිස්සමහාරාම
DevOps_UNIX / Linux_10_UNIX / Linux Process Priorities ගැන ගැබුරින්

මුලින් මම සැලසුම් කරගෙන හිටියෙ අදින් අපේ UNIX / Linux මුලික කමාන්ඩ්ස් පාඩම අවසන් කරන්න. නමුත් අපේ රටේ දැනට සිස් ඇඩ්මින්ල විදියට සේවය කරනකිහිප දෙනෙකුගෙ ඉල්ලීමක් මත UNIX / Linux Process Priorities ගැන දීර්ග විස්තරයක් අද පාඩමෙන් කථාකරන්න හිතුව. 

අපි අද මුලින්ම  කතා කරන්නේ Process Priorities ගැනයි. මෙහිදී මම ඔයාලට මෙන්න මේ කමාන්ඩ්ස් ටික ගැන කරුණු කිහිපයක් කියල දෙන්න බලාපොරොත්තු වෙනව.
  1. nice
  2. renice
  3. time
අපි කිසි යම් process එකක් ආරම්බ කරන විට UNIX / Linux kernel එක මගින් එම process එක schedule කරල එකට අවශ්‍ය CPU time එකත් වෙන්  කරනව (allocate). මෙහිදී පෙරනිමි ලෙස සියලුම process සදහා එක හා සමාන ප්‍රමුකත්වයක් ලැබේ. නමුත් අපිට ඇතැම් අවස්ථාවල අපගේ ක්‍රියාවන් ඉක්මනින් කරගැනීම සදහා ඇතැම් process හි ප්‍රමුකත්වය ඉහලට ගතයුතු වෙනව. එමෙන්ම සමහර process හි ප්‍රමුකත්වය අඩු කිරීමටත් අවශ්‍ය වෙනවා.

කිසියම් process එකක ප්‍රමුකත්වය අපට වෙනස් කළහැකි පරාසයක් තිබෙනවා. හොදින් මතක තියාගන්න එම පරාසය -20 සිට 19 දක්වා වූ පරාසයක විහිදිලා පවතිනව. අපි shell එකක් මගින් රන් කරන සියලුම process සදහා UNIX / Linux kernel එක මගින් ලබාදෙන පෙරනිමි අගය වන්නේ 0. 

අපිට යම්කිසි process එකක් අරම්බ කිරීමට පෙර හිතුනොත් මෙම පෙරනිමි අගය අපිට ප්‍රමාණවත් නැහැ කියල. අපිට පුළුවන් අපි කැමති ආකාරයට ප්‍රමුකත්වය ඉහළ දමා හෝ ප්‍රමුකත්වය පහළ දමා එම process එක ආරම්බ කරන්න. 
අපි මේ සදහා nice කියන කමාන්ඩ් එක බාවිතා කරනව, ඉහත සදහන් කල ප්‍රමුකතා පරාසයෙන් අගයක් (integer value) ගෙන එය nice සමග යෙදීමෙන් තමයි මෙය සිදු කරන්නෙ. අපි මේ අගයට nice value කියලත් කියනව නැතිනම් niceness කියලත් කියනව. 
දැන් අපිට මෙහෙමත් හිතන්න පුළුවන් process එකක් ආරම්බ කරනවිට kernel එක මගින් එම process එකට දෙන nice value එක තමයි 0 කියල. ඇත්තටම මේ සිතුවිල්ල හරි. 
 
හොදින් මතක තියාගන්න අපිට nice බාවිතා කල හැක්කේ process එක ආරම්බ කරන අවස්ථාවේ පමණි (මේකත් අපි job interview වලදි අහන ප්‍රශ්නයක්, මම ඔයාලට මේ වගේ job interview වලදී වැදගත් වන දේවල් වෙනම පාඩමකින් කියල දෙන්න බලා පොරොතු වෙනව. මම මේ කතා කරන්නෙ ලංකාවේ job ගැන නොවේ).

අපි දැන් උදාහරණ සහිතව nice බාවිතා කරන ආකාරය ඉගෙන ගනිමු.
 
පොඩ්ඩක් ඉන්න මම මුලින්ම කියල දෙන්නම් අපි කොහොමද process එකක nice value එක දන ගන්නෙ කියල. අපි මේ සදහාද බාවිතා කරන්නෙ අපි දැනටමත් දන්න ps කමාන්ඩ් එක.

ට්‍රයි ps -l හෝ ps -lf
nix@Dell ~ $ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  2575  2481  0  80   0 -  6184 wait   pts/0    00:00:00 bash
4 R  1000 10287  2575  0  80   0 -  7742 -      pts/0    00:00:00 ps
nix@Dell ~ $
nix@Dell ~ $ ps -lf
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 S nix       2604  2385  0  80   0 -  6182 wait   14:03 pts/0    00:00:00 /bin/bash
4 R nix       4663  2604  0  80   0 -  9854 -      14:12 pts/0    00:00:00 ps -lf
nix@Dell ~ $
ඔයාල හොදට බලන්න "NI" කියල කොලම් එකක් තියෙනවද කියල. අන්න ඒ කොලම් එකේ තමයි nice value එක සටහන් වෙලා තියෙන්නෙ. අපිට මෙම කමාන්ඩ් එකෙන් ගන්න පුළුවන් අපේ terminal එකේ තියෙන current shell එකෙන් රන් කරපු processes වල ලැයිස්තුවක්. අපිට අනිත් terminal වලින් රන් කරපු processes ටිකත් බලාගන්න ඕන නම් ps සමග a ඔප්ෂන් එක යොදන්න.

ට්‍රයි ps -alf
nix@Dell ~ $ ps -alf
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix       4592  4577  0  80   0 -  2146 -      14:08 pts/2    00:00:00 ping 0
4 R nix       5433  2604  0  80   0 -  9854 -      14:14 pts/0    00:00:00 ps -alf
nix@Dell ~ $ 
අපිට එක විශේෂිත process එකක විස්තර විතරක් දන ගන්න ඕන නමේ C ඔප්ෂන් එක යොදාගෙන මෙන්න මේ විදියට බාවිතා කරන්න පුළුවන්. අපි උදාහරණයකින් ම ඒක කරලා බලමු.
මුලින්ම අපි ping කමාන්ඩ් එකක් background එකේ රන් කරමු.

ට්‍රයි ping 0 1>/dev/null &
nix@Dell ~ $ ping 0 1>/dev/null &
[1] 5526
nix@Dell ~ $
දැන් අපි ට්‍රයි ps -lf -C "ping" කරල බලමු. 
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix       5526  5499  0  80   0 -  2146 -      14:19 pts/0    00:00:00 ping 0
nix@Dell ~ $
මම ඔයාලට කලිනුත් කිව්ව මතක ද මේ ps කමාන්ඩ් එක බාවිතාකරන ආකාර ගොඩක් තියෙනව. මේ විදියට අපි එකෙන් එක ඉගෙන ගන්න බලමු. දැන් අපි දන්නව nice value එක බලාගන්න ආකාරය.
දැන් අපිට ඉගෙන ගන්න පුළුවන් nice බාවිතාකරන ආකාරය . අපි මේකට සරලව කියන්නෙ ප්‍රොසෙස් එකේ ප්‍රයෝරිටි එක සෙට් කරනව කියල.  තව ඉතා වැදගත් දෙයක් තියෙනව ඔයාලට කියන්න. මේ nice value එකේ සංක්‍යත්මක අගය වැඩිවෙන විට process එකේ priority එක අඩුවෙනව. ඒ කියන්නෙ අපි process එකකට nice value එකට 19ක් දුන්නොත් process එක නිකම් ලෙඩ කපුටො වැල කනව වගේ තමයි (slow වෙනව). ඒ වගේම -20ක් දුන්නොත් ගැරඩියට භුමි තෙල් ගැහුව වගේ තමයි. බොහොමයක් system processes වල nice value එක -20 වෙනව. ඇයි එහෙම වෙන්නෙ කියල දැන් ඔයාලට තේරුම් ගන්න පුළුවන්.

දැන් කමන්ඩ්ස් ට්‍රයි කරමු.

ට්‍රයි nice
nix@Dell ~ $ nice
0
nix@Dell ~ $ 
අපිට nice කමාන්ඩ් එක විතරක් දීල (options නොමැතිව) දැන ගන්න පුළුවන් අපේ current shell එක රන් වෙන nice value එක.

අපි දැන් අපේ shell එකේ (bash ෂෙල්) nice value එක 5 කරමු. එකට nice කමාන්ඩ් එකට අපි parameter එකක් විදියට 5 දෙනව . අපි nice ට parameter එකක් දෙනකොට දෙන්නෙ මෙහෙමයි 


nice -<parameter>


හොදින් මතක තියාගන්න parameter එකට කලින් අනිව - ලකුණ යොදන්න ඕන බව. parameter එක විදියට ධන 5 යොදන විට nice -5 ලෙසද.
ඍණ 5 ඒ කියන්නේ -5 දෙනවිට මෙලෙසද nice --5 බාවිතා කල යුතුයි. මෙම ක්‍රමය පැටළිලි සහිත නම්. මම තවත් පහසු ක්‍රමයක් උදාහරණ වලදී පෙන්වන්නම්.

ට්‍රයි nice -5 bash හෝ nice -n 5 bash
nix@Dell ~ $ nice -5 bash
nix@Dell ~ $
මෙහිදී අපි කරේ අපේ current shell එකේ nice value එක 5 කරා. කලින් තිබුනෙ 0. දැන් 5. අපි චෙක් කරලා බලමු. (මම මෙතන current shell එකේ කියල කිව්වට ඇත්තම කතාව නම් කමාන්ඩ් එක ටයිප් කරනවිට පවතින current shell එක මගින් නව shell එකක් ආරම්බ වෙනව එම shell එක තමා අපිට terminal එකේ කමාන්ඩ් එකෙන් පසුව current shell එක විදියට පේන්න තියෙන්නෙ. අන්න ඒ අන්තිමට පෙන්න තියෙන shell එකේ nice value එක තමා 5 වෙන්නෙ)

දැන් ට්‍රයි nice
nix@Dell ~ $ nice
5
nix@Dell ~ $
මේ විදියටත් චෙච්ක් කරලා බලමු.
nix@Dell ~ $ ps -lf -C "bash"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 S nix       4498  4491  0  80   0 -  6182 wait_w 14:07 pts/1    00:00:00 /bin/bash
0 S nix       7327  2385  0  80   0 -  6184 wait   16:02 pts/2    00:00:00 /bin/bash
0 S nix       7400  7327  0  85   5 -  6182 wait   16:04 pts/2    00:00:00 bash
nix@Dell ~ $
බලන්න PID 7400 කියන bash shell NI අගය 5 නේද කියල.

අපි මේ විදියට අපේ shell එකේ nice value එක වෙනස් කලොත්, එම shell එක මගින් ආරම්බ කරන සියලුම කමන්ඩ්ස් වල nice value එකත් shell එකේ nice value එකට සමානයි. ඒ කියන්නෙ අපේ shell එක රන් වන priority එකෙන්ම අපි දුන්න කමන්ඩ්ස් ටිකත් රන් වෙනව කියල.

අපේ current shell එකේම මේකත් ට්‍රයි කරමු.

ට්‍රයි ping 0 1>/dev/null &
nix@Dell ~ $ ping 0 1>/dev/null &
[1] 7451
nix@Dell ~ $
දැන් බලමු ping එකේ NI එක කියාද කියල.

ට්‍රයි ps -lf -C "ping"
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix       7451  7400  0  85   5 -  2146 -      16:07 pts/2    00:00:00 ping 0
nix@Dell ~ $
දැක්ක නේද NI එක 5යි. අපේ shell එකේ ගනනමයි. 
මෙම කරුණත් හොදින් මතක තියාගන්න. මේ වගේ කරුණු ඔයාලට පහසුවෙන් යම් පටමලාවක් කරල ඉගෙන ගන්න අමාරුයි. මොකද මම මෙහෙම කියන්නෙ මගේ අත් දැකීමෙන්.  කනගාටුවට කරුනකුත් තියෙනවා. අපේ රජයේ උසස් අධ්‍යාපන ආයතනවල ඉගැන්වීම් කටයුතු කරන බොහොමයක් දෙනාහට ඇත්තේ අවම ප්‍රයෝගික දැනුමක්. නමුත් එයාල ටයි එකටයි කෝට් එකටයි මාර හැන්ඩ්සම් පොරවල්. 


අපි මේ background එකේ රන් වෙන PID 7451 වන ping කමාන්ඩ් එක අපි kill කරමු. අනතුරුව exit කමාන්ඩ් එක ටයිප් කරල අපේ current shell එකෙන් ඉවත් වෙමු.

ට්‍රයි kill 7451
nix@Dell ~ $ kill 7451
nix@Dell ~ $ jobs -l
[1]+  7451 Terminated              ping 0 > /dev/null
nix@Dell ~ $
ට්‍රයි exit
nix@Dell ~ $ exit
exit
nix@Dell ~ $
දැන් අපි ඉන්න shell එකේ NI එක 0 යි. මේ බලන්න 
nix@Dell ~ $ nice
0
nix@Dell ~ $  
දැන් අපි දන්නවා nice value එක සෙට් කරන එක විදියක්. 


දැන් අනෙක් විදියත් ඉගෙන ගනිමු. අපි මෙහිදී කෙලින්ම අපේ කමාන්ඩ් එකට nice value එක සෙට් කරනවා. හරියට අපි මුලින්ම bash shell එකට කළා වගේ.

ට්‍රයි nice -n 10 ping 0 1>/dev/null & හෝ nice -10 ping 0 1>/dev/null &
nix@Dell ~ $ nice -n 10 ping 0 1>/dev/null &
[1] 8946
nix@Dell ~ $

ට්‍රයි ps -lf -C "ping"
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix       8946  8856  0  90  10 -  2146 -      16:40 pts/2    00:00:00 ping 0
nix@Dell ~ $

දැන් අපි ping කියන process එක kill කරමු.

ට්‍රයි kill 8946
nix@Dell ~ $ kill 8946
nix@Dell ~ $
දැන් අපි බලමු nice value එකට ඍණ අගයක් දීල. (- අගයක් දුන්න විට process එකේ priority එක වැඩි වෙනව, ඒ වගේම වැඩිපුර resources එහෙමත් use කරනව)

ට්‍රයි nice -n -10 ping 0 1>/dev/null &
nix@Dell ~ $ nice -n -10 ping 0 1>/dev/null &
[1] 9067
nix@Dell ~ $ nice: cannot set niceness: Permission denied
nix@Dell ~ $
හ්ම් එපාර අපිට nice value එක සෙට් කරන්න බැරිය කියල කියන්නේ. මොකක්ද දන්නවද මේ කියන්නෙ. nice value එකට ඍන (-) අගයක් සෙට් කරන්න පුළුවන් root ට විතරයි කියන එක. 
මොකද හැමෝටම එහෙම priority එක වැඩි කරගන්න පුළුවන් වුනොත් දන්නවා නේ වෙනදේ. - අගයක් කියන්නෙ කඩාගෙන බිදගෙන යන යකා වගේ රන් වෙනව කියන එකයි. ඒ විදියට processes කිහිපයක් රන් වුනොත් සිස්ටම් එකේ ඉන්න අහිංසක පොරවල් වලට සොරි තමා. මොකද එයාලගෙ processes ටිකට ලැබෙන්නෙ අඩු resources ටිකක් නිසා.

මෙහිදී nice value එක සෙට් කරන්න බැරිවුනාට ping කමාන්ඩ් එක රන් වෙනව නමුත් nice value එක 0 යි.
අපිට ඒක චෙක් කරල බලන්න පුළුවන් .

ට්‍රයි ps -lf -C "ping"
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix       9067  9051  0  80   0 -  2146 -      16:50 pts/0    00:00:00 ping 0
nix@Dell ~ $
අන්තිමට ping කමාන්ඩ් එක මේ විදියට kill කරන්න

ට්‍රයි kill 9067
 
දැන් අපි root පර්මිෂන් අරගෙන කලින් ට්‍රයි කරපු කමාන්ඩ් එකම ට්‍රයි කරමු.


ට්‍රයි sudo -s
nix@Dell ~ $ sudo -s
[sudo] password for nix: 
Dell ~ #

ට්‍රයි nice -n -10 ping 0 1>/dev/null &
Dell ~ # nice -n -10 ping 0 1>/dev/null &
[1] 9444
Dell ~ #
දැන් චෙක් කරල බලමු.

ට්‍රයි ps -lf -C "ping"
Dell ~ # ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root      9444  9430  0  70 -10 -  2146 skb_re 17:09 pts/0    00:00:00 ping 0
Dell ~ #
අන්තිමට ping එක kill කරල දාල (තියාගෙන හිටියට වැඩක් නෑනෙ) root පර්මිෂන් එකෙන් exit වෙමු.


ට්‍රයි kill 9444
Dell ~ # kill 9444
Dell ~ #

ට්‍රයි exit
Dell ~ # exit
exit
nix@Dell ~ $

අපි මේ විදියට root ගෙ පර්මිෂන් අරගෙන කමාන්ඩ් එකක් රන් කරන එක එතරම් හොද දෙයක් නෙවි. මොකද මෙම process එක රන් වෙන්නෙ root යටතෙ නිසා. සිකුරිටි රිස්ක් එකක් තියෙනව.
හොදම විදිය තාම කමාන්ඩ් එක නොර්මල් user ගෙන් රන් කරල පස්සේ එකේ nice value එක වෙනස් කිරීම. 


හොදින් මතක තියාගන්න nice කමාන්ඩ් එක මගින් අපිට ආරම්බ කරන ලද කමාන්ඩ් එකක් nice value එක වෙනස් කරන්න බෑ කියල. අපිට ඒ සදහා renice කියන කමාන්ඩ් එක යොදාගන්න පුළුවන්. අපි ඊළගට බලමු කොහොමද මේ renice බාවිතා කරන්නෙ කියලා.

අපි මුලින්ම බලමු renice මගින් nice value එක ධන අගයකට සෙට් කරන ආකාරය.

අපි මුලින්ම නොර්මල් විදියට කමාන්ඩ් එකක් රන් කරමු මේ විදියට.
nix@Dell ~ $ ping 0 1>/dev/null &
[1] 10305
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix      10305 10290  0  80   0 -  2146 -      18:04 pts/0    00:00:00 ping 0
nix@Dell ~ $
දැන් renice බාවිතා කරමු.

ට්‍රයි sudo renice 10 10305
nix@Dell ~ $ sudo renice 10 10305
[sudo] password for nix: 
10305 (process ID) old priority 0, new priority 10
nix@Dell ~ $

ට්‍රයි ps -lf -C "ping"
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix      10305 10290  0  90  10 -  2146 -      18:04 pts/0    00:00:00 ping 0
nix@Dell ~ $

ට්‍රයි sudo renice 0 10305
nix@Dell ~ $ sudo renice 0 10305
10305 (process ID) old priority 10, new priority 0
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix      10305 10290  0  80   0 -  2146 -      18:04 pts/0    00:00:00 ping 0
nix@Dell ~ $

ට්‍රයි sudo renice -5 10305
nix@Dell ~ $ sudo renice -5 10305
10305 (process ID) old priority 0, new priority -5
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix      10305 10290  0  75  -5 -  2146 -      18:04 pts/0    00:00:00 ping 0
nix@Dell ~ $ 
නැවතත් nice value එක 0 කරමු.

ට්‍රයි sudo renice 0 10305
nix@Dell ~ $ sudo renice 0 1030510305 (process ID) old priority -5, new priority 0
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S nix      10305 10290  0  80   0 -  2146 -      18:04 pts/0    00:00:00 ping 0
nix@Dell ~ $ kill 10305nix@Dell ~ $
අපිට මෙම ක්‍රමයෙන් නෝමල් user කෙනෙක් ගෙ process එකක priority එක වැඩි කරන්න පුළුවන් (nice value එක අඩු කිරීම) root පර්මිෂන් නොමැතිව කමාන්ඩ් එක රන් කරල.
ඉහත උදාහරණ වලදී මම renice සමග යොදාගත්තේ PID එකයි.

අපිට renice මගින් කිසියම් user කෙනෙක් රන් කරපු සියලුම processes වල nice value එක එක් වරම වෙනස් කිරීමට වුවද පුළුවන්. අපි දැන් එය සිදු කරන ආකාරය බලමු. මෙම මේ සදහා අලුතෙන් terminal එකක් open කරල. මගේ සිස්ටම් එකේ ඉන්න වෙනත් user කෙනෙකුගෙන් ලොග් වී processes කිහිපයක් රන් කරලා වැඩේ පටන් ගනිමු.

nix@Dell ~ $ su -l minix
Password: 
minix@Dell ~ $ ping 0 1>/dev/null &
[1] 11433
minix@Dell ~ $ ping 0 1>/dev/null &
[2] 11435
minix@Dell ~ $ ping 0 1>/dev/null &
[3] 11436
minix@Dell ~ $ ping 0 1>/dev/null &
[4] 11437
minix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S minix    11433 11409  0  80   0 -  2146 -      18:22 pts/3    00:00:00 ping 0
4 S minix    11435 11409  0  80   0 -  2146 -      18:22 pts/3    00:00:00 ping 0
4 S minix    11436 11409  0  80   0 -  2146 -      18:22 pts/3    00:00:00 ping 0
4 S minix    11437 11409  0  80   0 -  2146 -      18:22 pts/3    00:00:00 ping 0
minix@Dell ~ $
මම ආපසු මගේ පරණ terminal එකට ගිහිල්ල මේ ටික කරනව .

ට්‍රයි sudo renice 13 -u minix
nix@Dell ~ $ sudo renice 13 -u minix
1003 (user ID) old priority 0, new priority 13
nix@Dell ~ $ ps -lf -C "ping"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S minix    11433 11409  0  93  13 -  2146 -      18:22 pts/3    00:00:00 ping 0
4 S minix    11435 11409  0  93  13 -  2146 -      18:22 pts/3    00:00:00 ping 0
4 S minix    11436 11409  0  93  13 -  2146 -      18:22 pts/3    00:00:00 ping 0
4 S minix    11437 11409  0  93  13 -  2146 -      18:22 pts/3    00:00:00 ping 0
nix@Dell ~ $ 
දැක්ක නේද වෙලා තියන දේ. දැන් ඔයාලට පැහැදිලියි වැඩේ කොහොමද කරන්නෙ කියල.

මම දැන් minix ආරම්බ කරපු සියලුම processes ටික මෙන්න මේ විදියට kill කරල දානව.

ට්‍රයි sudo pkill -u minix
nix@Dell ~ $ sudo pkill -u minix
[sudo] password for nix: 
nix@Dell ~ $

අපිට චෙක් කරල බලන්න පුළුවන් සේරම processes ටික killed ද කියල.

ට්‍රයි ps -u minix
nix@Dell ~ $ ps -u minix
  PID TTY          TIME CMD
nix@Dell ~ $
හරි minix ගෙ කිසිම දෙයක් ඉතිරිවෙලා නෑ.

මම අද පාඩම අවසන් කරන්න කලින් හොද උදාහරණයකින් පෙන්වන්නම් process එකේ priority එක nice value එක අනුව අඩු වැඩි වෙන ආකාරය. ඔයාල මේක තේරුම් ගන්න උත්සහ කරන්න. අපිට මේ උදාහරණ කිහිපය සදහා එකම පරීක්ෂණ තත්ව පවත්වා ගැනීමට ඕන නිසා තාවකාලිකව root පර්මිෂන් එක අරගෙන වැඩේ කරමු.

ට්‍රයි sudo -s
nix@Dell ~ $ sudo -s
[sudo] password for nix: 
Dell ~ #

අපි දැන් ට්‍රයි කරමු nice value -20 සමග (priority එක වැඩි)

ට්‍රයි time nice -n -20 seq 100000000000 1>/dev/null
Dell ~ # time nice -n -20 seq 100000000000 1>/dev/null
real    12m11.974s
user    11m52.584s
sys     0m19.320s

අපි දැන් ට්‍රයි කරමු nice value 19 සමග (priority එක අඩු)ට්‍රයි time nice -n 19 seq 100000000000 1>/dev/null
Dell ~ # time nice -n 19 seq 100000000000 1>/dev/null
real    12m15.524s
user    11m55.300s
sys     0m20.036s
මේ ප්‍රතිපල දෙක දිහා බැලුවම ඔයාලට පේනවා NI එක -20 විට ගතවූ කාලය 19 ට සාපේක්ෂව අඩු බව.

මේ තියෙන්නේ මම ටෙස්ට් එක කරන අතරේ ලබාගත් ps -lf -C "seq" කමාන්ඩ් එකේ outputs 
nix@Dell ~ $ ps -lf -C "seq"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 R root     12737 11768 99  60 -20 -  2340 -      19:50 pts/0    00:09:16 seq 100000000000
nix@Dell ~ $
nix@Dell ~ $ nix@Dell ~ $ ps -lf -C "seq"
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
0 R root     12834 11768 99  99  19 -  2340 -      20:03 pts/0    00:00:04 seq 100000000000
nix@Dell ~ $ 


මම දැන් සුදානම් වෙන්නේ time කමාන්ඩ් එකෙන් ලැබුන result එකේ තිබෙන realuser සහ sys කියන දේ ගැන පොඩි පැහැදිලි කිරීමක් කරන්න. (මෙය ටිකක් සංකීර්ණ දෙයක්)
දැනට ඔයාල මෙන්න මේ විදියට සරලව තේරුම් ගන්න බලන්න. ඉදිරියේදී අපි scripting language බාවිතා කරලා සෙල්ලම් කරන කොට මම මේ ගැන ගැබුරින් පැහැදිලි කරන්නම්. මේ වගේ දේවල් ප්‍රයෝගික උදාහරණ මගින් තේරුම් ගන්න එක ඉතා පහසුයි.

දැනට මේ විදියට මතක තියා ගන්න.
real - මේ කියන්නේ කමාන්ඩ් එක රන් කරපු වෙලාවේ ඉදන් අවසන් වෙනකම් ගතවූ කාලය. හරියට අපේ සුසන්තිකා අක්ක go කියනකොට දුවන පටන් ගන්න කොට stopwatch එක start කරලා අවසන් සිමාව පසු කරනකොට එකේ stop එක එබුවම පෙන්නන කාලය වගේ දෙයක්.
user - මේකෙන් කියන්නෙ  use කරපු CPU time එක. (උදහරණ :- ගණනය කිරීම් වලට)
sys - මගින් නිරුපනය කරන්නෙ කමාන්ඩ් එක execute කරන්න UNIX / Linux kernel එකට ගතවූ කාලය.

UNIX / Linux මූලික කමාන්ඩ්ස් හි අවසන් පාඩමෙන් නැවත හමුවෙමු.

ස්තුතියි!
 
Last edited:
May 7, 2016
12,338
1,004
0
තොප්පිගල
:cool::cool:
11.gif
11.gif
 

ja2k17ja

Member
May 10, 2017
185
166
0
තිස්සමහාරාම
thanks bro oya loku sewayak karanne

ela machan +4


මල්ලිල හැමෝටම ස්තුතියි.

මම ලොකු ගේමක් දෙනව මේ ටික සිංහලෙන් ටයිප් කරන්න. එක ලිපියක් ලියන්න පැය 5 විතර යනව. මම උදහරණ ටිකත් ලිපිය ලියන ගමන් තමයි test කරල රිසල්ට් එකත් capture කරගෙන දාන්නේ .

මම අද Docker ගැන කියල දෙන්න උත්සහ කරනව. Docker එක අල්ල ගන්න පුළුවන් නම්.
DevOps කෙනෙක් වෙන එක නතර කරන්න බෑ. මම පුළුවන් තරම් සරලව කියල දෙනව. Docker ගැන කියල දෙන්නෙ පොඩි චේන්ජ් එකකටත් එක්ක.

මුලික UNIX / Linux පාඩමේ අවසන් ලිපියත් ලගදීම.

එහෙමනම් අපි dockyard එකේදී හමු වෙමු.

හැමෝටම ස්තුතියි!
 
Last edited:
  • Like
Reactions: Schrodinger Cat
May 7, 2016
12,338
1,004
0
තොප්පිගල
මල්ලිල හැමෝටම ස්තුතියි.

මම ලොකු ගේමක් දෙනව මේ ටික සිංහලෙන් ටයිප් කරන්න. එක ලිපියක් ලියන්න පැය 5 විතර යනව. මම උදහරණ ටිකත් ලිපිය ලියන ගමන් තමයි test කරල රිසල්ට් එකත් capture කරගෙන දාන්නේ .

මම අද Docker ගැන කියල දෙන්න උත්සහ කරනව. Docker එක අල්ල ගන්න පුළුවන් නම්.
DevOps කෙනෙක් වෙන එක නතර කරන්න බෑ. මම පුළුවන් තරම් සරලව කියල දෙනව. Docker ගැන කියල දෙන්නෙ පොඩි චේන්ජ් එකකටත් එක්ක.

මුලික UNIX / Linux පාඩමේ අවසන් ලිපියත් ලගදීම.

එහෙමනම් අපි dockyard එකේදී හමු වෙමු.

හැමෝටම ස්තුතියි!

ගොඩක් ස්තුතියි අයියේ ඔයාගේ මහන්සියට
සාමාන්යෙන් අදකාලේ කවුරුවත් මෙහෙම දේවල් ලෙසියකින් කියල දෙන්නේ නෑ තමන්ගේ කාලෙත් කාගෙන
 

ja2k17ja

Member
May 10, 2017
185
166
0
තිස්සමහාරාම

ගොඩක් ස්තුතියි අයියේ ඔයාගේ මහන්සියට
සාමාන්යෙන් අදකාලේ කවුරුවත් මෙහෙම දේවල් ලෙසියකින් කියල දෙන්නේ නෑ තමන්ගේ කාලෙත් කාගෙන
ස්තුතියි !

Sharing knowledge has helped mankind survive and evolve into the intelligent and productive species he is today.
 

dath kimbula

Well-known member
  • Jan 17, 2011
    35,838
    3,595
    113
    මහපොලව.....
    අවංකව ම කියන්නං මට නං අදෝ සංසාරයක් තේරෙන්නේ නෑ මේවා. ඒ ඔබතුමා ගේ අවුලක් නොව මේ මගේ ක්ෂේ ත්‍රය නොවෙන නිසා.

    නමුත් මහන්සිවෙලා මේකෙ උන්ට වැදගත් යමක් දීමේ ව්‍යායාමය අගය නොකර, ක.පු. වහං යනව නං ඒක කුහකකමක් වන නිසා මේ වචන 3-4 ලියමි.

    බොහොම ස්තූතියි මේ කරන සත් කාර්යයට.

    +++++++++++++++++++++++++++++++++++++++
     
    • Like
    Reactions: Schrodinger Cat

    ja2k17ja

    Member
    May 10, 2017
    185
    166
    0
    තිස්සමහාරාම
    අවංකව ම කියන්නං මට නං අදෝ සංසාරයක් තේරෙන්නේ නෑ මේවා. ඒ ඔබතුමා ගේ අවුලක් නොව මේ මගේ ක්ෂේ ත්‍රය නොවෙන නිසා.

    නමුත් මහන්සිවෙලා මේකෙ උන්ට වැදගත් යමක් දීමේ ව්‍යායාමය අගය නොකර, ක.පු. වහං යනව නං ඒක කුහකකමක් වන නිසා මේ වචන 3-4 ලියමි.

    බොහොම ස්තූතියි මේ කරන සත් කාර්යයට.

    +++++++++++++++++++++++++++++++++++++++

    ඔබ තුමාටත් බොහොම ස්තුතියි. රිප්ලයි කරන්න පරක්කු වුනාට සමාවෙන්න.