ນີ້ແມ່ນຄໍາສັ່ງ cset-proc ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
cset-proc - ຈັດການຂະບວນການທີ່ເຮັດວຽກຢູ່ໃນ cpusets
ສະຫຼຸບສັງລວມ
cset [ຕົວເລືອກ cset] ຜະລິດຕະພັນ [ຕົວເລືອກ proc] [args]
cset proc --help
cset ຜະລິດຕະພັນ
cset proc my_set my_other_set
cset proc --list --set my_set
cset proc --exec my_set /opt/software/my_code --my_opt_1
cset proc --set my_set --exec /opt/software/my_code --my_opt_1
cset proc --move 2442,3000-3200 my_set
cset proc --move --pid=2442,3000-3200 --toset=my_set
cset proc --move --fromset=my_set_1 --toset=my_set_2
cset proc --move --pid=42 --fromset=/group1/myset --toset=/group2/yourset
OPTIONS
-h, --help
ພິມລາຍການທາງເລືອກສໍາລັບຄໍາສັ່ງນີ້
-l, --list
ບັນຊີລາຍຊື່ຂະບວນການໃນ cpuset ທີ່ກໍານົດໄວ້
-e, --exec
ປະຕິບັດການໂຕ້ຖຽງໃນ cpuset ທີ່ລະບຸ
-u USER, --user=USER
ໃຊ້ USER ນີ້ເພື່ອ --exec (id ຫຼືຊື່)
-g GROUP, --group=GROUP
ໃຊ້ກຸ່ມນີ້ເພື່ອ --exec (id ຫຼືຊື່)
-m, --ຍ້າຍ
ຍ້າຍວຽກງານທີ່ກໍານົດໄວ້ກັບ cpuset ທີ່ກໍານົດໄວ້; ເພື່ອຍ້າຍ PIDSPEC ໄປຫາ cpuset, ໃຊ້ -m
PIDSPEC cpuset; ເພື່ອຍ້າຍໜ້າວຽກທັງໝົດໃຫ້ລະບຸ --fromset ແລະ --toset
-p PIDSPEC, --pid=PIDSPEC
ລະບຸ pid ຫຼື tid ສະເພາະ
-- ກະທູ້
ຖ້າລະບຸ, ຂະບວນການໃດໆທີ່ພົບເຫັນຢູ່ໃນ PIDSPEC ຈະມີຫຼາຍຫົວຂໍ້
ມີກະທູ້ທັງໝົດຂອງເຂົາເຈົ້າເພີ່ມໃສ່ PIDSPEC ໂດຍອັດຕະໂນມັດ (ໃຊ້ເພື່ອຍ້າຍທັງໝົດທີ່ກ່ຽວຂ້ອງ
ກະທູ້ກັບ cpuset)
-s CPUSET, --set=CPUSET
ລະບຸຊື່ຂອງ cpuset ທັນທີ
-t TOSET, --toset=TOSET
ລະບຸຊື່ຂອງ cpuset ປາຍທາງ
-f FROMSET, --fromset=FROMSET
ລະບຸຊື່ຂອງ cpuset ຕົ້ນກໍາເນີດ
-k, --kthread
ຍ້າຍ, ຫຼືປະກອບມີການເຄື່ອນຍ້າຍ, unbound thread kernel
--ກຳລັງ
ບັງຄັບໃຫ້ຂະບວນການ ແລະກະທູ້ທັງໝົດຖືກຍ້າຍ
-v, --verbose
ພິມຜົນຜະລິດລາຍລະອຽດເພີ່ມເຕີມ, ເພີ່ມເຕີມ
ລາຍລະອຽດ
ຄໍາສັ່ງນີ້ຖືກນໍາໃຊ້ເພື່ອດໍາເນີນການແລະຈັດການຂະບວນການ arbitrary ໃນ cpusets ທີ່ລະບຸ. ມັນແມ່ນ
ຍັງໃຊ້ເພື່ອຍ້າຍຂະບວນການທີ່ມີຢູ່ກ່ອນແລ້ວແລະກະທູ້ໄປຫາ cpusets ທີ່ລະບຸ. ທ່ານອາດຈະສັງເກດເຫັນ
ບໍ່ມີທາງເລືອກ "ຂ້າ" ຫຼື "ທໍາລາຍ" - ໃຊ້ມາດຕະຖານ OS ^C ຫຼືຄໍາສັ່ງຂ້າສໍາລັບການນັ້ນ.
ເພື່ອລາຍຊື່ວຽກໃດທີ່ເຮັດວຽກຢູ່ໃນ cpuset ໂດຍສະເພາະ, ໃຊ້ຄໍາສັ່ງ --list.
ຍົກຕົວຢ່າງ:
# cset ຜະລິດຕະພັນ --ລາຍການ --ຕັ້ງ myset
ຄໍາສັ່ງນີ້ຈະສະແດງລາຍການວຽກທັງຫມົດທີ່ແລ່ນຢູ່ໃນ CPU ທີ່ເອີ້ນວ່າ "myset".
ຂະບວນການຖືກສ້າງຂື້ນໂດຍການລະບຸເສັ້ນທາງໄປສູ່ການດໍາເນີນການແລະລະບຸ cpuset
ວ່າຂະບວນການແມ່ນຈະຖືກສ້າງຂຶ້ນໃນ.
ຍົກຕົວຢ່າງ:
# cset ຜະລິດຕະພັນ --set=blazing_cpuset --exec /usr/bin/fast_code
ຄໍາສັ່ງນີ້ຈະປະຕິບັດໂຄງການ /usr/bin/fast_code ໃນ cpuset "blazing_cpuset".
ໃຫ້ສັງເກດວ່າຖ້າຄໍາສັ່ງຂອງເຈົ້າເອົາທາງເລືອກ, ຫຼັງຈາກນັ້ນໃຊ້ເຄື່ອງຫມາຍ "--" ແບບດັ້ງເດີມເພື່ອແຍກ
ຕົວເລືອກຂອງ cset ຈາກຕົວເລືອກຄໍາສັ່ງຂອງທ່ານ.
ຍົກຕົວຢ່າງ:
# cset ຜະລິດຕະພັນ --ຕັ້ງ myset --exec - ls -l
ຄໍາສັ່ງນີ້ຈະດໍາເນີນການ "ls -l" ໃນ cpuset ເອີ້ນວ່າ "myset".
argument PIDSPEC ປະຕິບັດສໍາລັບຄໍາສັ່ງຍ້າຍແມ່ນບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງ PIDs ຫຼື TIDs.
ບັນຊີລາຍຊື່ຍັງສາມາດປະກອບມີວົງເລັບຂອງ PIDs ຫຼື TIDs (ເຊັ່ນ: ວຽກງານ) ທີ່ລວມເຖິງ
ຈຸດຈົບ.
ຍົກຕົວຢ່າງ:
1,2,5 ໝາຍເຖິງຂະບວນການ 1, 2 ແລະ 5
1,2,600-700 ຫມາຍຄວາມວ່າຂະບວນການ 1, 2 ແລະຈາກ 600 ຫາ 700
ຫມາຍເຫດ
ຂອບເຂດຂອງ PIDs ຫຼື TIDs ບໍ່ຈໍາເປັນຕ້ອງມີທຸກຕໍາແຫນ່ງ. ໃນອື່ນໆ
ຄໍາສັບຕ່າງໆ, ຕົວຢ່າງຂ້າງເທິງ, ຖ້າມີພຽງແຕ່ຂະບວນການດຽວ, ເວົ້າວ່າ PID 57, ໃນລະດັບ
ຂອງ 50-65, ຫຼັງຈາກນັ້ນພຽງແຕ່ຂະບວນການນັ້ນຈະຖືກຍ້າຍ.
ເພື່ອຍ້າຍ PIDSPEC ໄປຫາ CPU ສະເພາະ, ທ່ານສາມາດລະບຸ PIDSPEC ດ້ວຍ --pid ແລະ
cpuset ປາຍທາງດ້ວຍ --toset, ຫຼືໃຊ້ມືສັ້ນແລະຂຽນຊື່ cpuset ຫຼັງຈາກ
PIDSPEC ສໍາລັບການໂຕ້ຖຽງ --ຍ້າຍ.
ຄໍາສັ່ງຍ້າຍຮັບເອົາວິທີການເອີ້ນທົ່ວໄປຫຼາຍວິທີ. ຕົວຢ່າງ, ຕໍ່ໄປນີ້
ຄໍາສັ່ງແມ່ນທຽບເທົ່າ:
# cset ຜະລິດຕະພັນ --ຍ້າຍ 2442,3000-3200 reserved_set
# cset ຜະລິດຕະພັນ --ຍ້າຍ --pid=2442,3000-3200 --toset=reserved_set
ຄໍາສັ່ງເຫຼົ່ານີ້ຍ້າຍວຽກງານທີ່ກໍານົດໄວ້ເປັນ 2442 ແລະວຽກງານໃດຫນຶ່ງທີ່ແລ່ນລະຫວ່າງ 3000 ແລະ 3200
ລວມທັງການສິ້ນສຸດຂອງ cpuset ທີ່ເອີ້ນວ່າ "reserved_set".
ການລະບຸ --fromset ແມ່ນບໍ່ຈໍາເປັນນັບຕັ້ງແຕ່ວຽກງານຈະຖືກຍ້າຍໄປທີ່ປາຍທາງ
cpuset ບໍ່ວ່າຈະເປັນ cpuset ໃດທີ່ເຂົາເຈົ້າກໍາລັງແລ່ນຢູ່ໃນ.
ຫມາຍເຫດ
ຢ່າງໃດກໍຕາມ, ຖ້າທ່ານກໍານົດ cpuset ທີ່ມີທາງເລືອກ --fromset, ຫຼັງຈາກນັ້ນພຽງແຕ່ວຽກງານເຫຼົ່ານັ້ນ
ທີ່ທັງສອງຢູ່ໃນ PIDSPEC ແລະ ກໍາລັງແລ່ນຢູ່ໃນ cpuset ທີ່ລະບຸໂດຍ --fromset will
ຖືກຍ້າຍ. Ie, ຖ້າມີວຽກງານທີ່ເຮັດວຽກຢູ່ໃນລະບົບແຕ່ບໍ່ແມ່ນຢູ່ໃນ --fromset ນັ້ນຄື
ໃນ PIDSPEC, ມັນຈະບໍ່ຖືກຍ້າຍ.
ຖ້າປຸ່ມ --threads ຖືກນໍາໃຊ້, ຫຼັງຈາກນັ້ນຄໍາສັ່ງ proc ຈະລວບລວມກະທູ້ໃດໆຂອງ
ເປັນຂອງຂະບວນການຫຼືກະທູ້ທີ່ຖືກກໍານົດໄວ້ໃນ PIDSPEC ແລະຍ້າຍພວກມັນ.
ນີ້ສະຫນອງວິທີທີ່ງ່າຍທີ່ຈະຍ້າຍກະທູ້ທີ່ກ່ຽວຂ້ອງທັງຫມົດ: ພຽງແຕ່ເລືອກເອົາຫນຶ່ງ TID ຈາກຊຸດແລະ
ໃຊ້ຕົວເລືອກ --threads.
ເພື່ອຍ້າຍຫນ້າວຽກພື້ນທີ່ຜູ້ໃຊ້ທັງຫມົດຈາກ cpuset ຫນຶ່ງໄປຫາອື່ນ, ທ່ານຈໍາເປັນຕ້ອງລະບຸແຫຼ່ງແລະ
cpuset ປາຍທາງຕາມຊື່.
ຍົກຕົວຢ່າງ:
# cset ຜະລິດຕະພັນ --ຍ້າຍ --fromset=comp1 --toset=comp42
ຄໍາສັ່ງນີ້ກໍານົດວ່າຂະບວນການແລະກະທູ້ທັງຫມົດທີ່ແລ່ນຢູ່ໃນ cpuset "comp1" ຖືກຍ້າຍ
ກັບ cpuset "comp42".
ຫມາຍເຫດ
ຄຳສັ່ງຍ້າຍນີ້ຈະບໍ່ຍ້າຍກະທູ້ kernel ເວັ້ນເສຍແຕ່ວ່າສະວິດ -k/--kthread ແມ່ນ
ລະບຸ. ຖ້າມັນເປັນ, ຫຼັງຈາກນັ້ນກະທູ້ kernel ທີ່ບໍ່ຜູກມັດທັງຫມົດຈະຖືກເພີ່ມເຂົ້າໃນການເຄື່ອນໄຫວ.
Unbound kernel threads ແມ່ນຜູ້ທີ່ສາມາດແລ່ນຢູ່ໃນ CPU ໃດໆ. ຖ້າເຈົ້າ ຍັງ ລະບຸ ໄດ້
--force switch, ຫຼັງຈາກນັ້ນວຽກງານທັງຫມົດ, kernel ຫຼືບໍ່, ຜູກມັດຫຼືບໍ່, ຈະຖືກຍ້າຍ.
ລະມັດລະວັງ
ກະລຸນາລະມັດລະວັງກັບປຸ່ມ --force, ນັບຕັ້ງແຕ່ການຍ້າຍ thread kernel ທີ່ຖືກຜູກມັດ
ກັບ CPU ສະເພາະກັບ cpuset ທີ່ບໍ່ລວມເອົາ CPU ນັ້ນສາມາດເຮັດໃຫ້ລະບົບ hang ໄດ້.
ທ່ານຕ້ອງລະບຸຊື່ cpuset ທີ່ເປັນເອກະລັກສໍາລັບທັງສອງຄໍາສັ່ງ exec ແລະຍ້າຍ. ຖ້າຊື່ງ່າຍໆ
ຜ່ານໄປຫາ --fromset, --toset ແລະ --set ຕົວກໍານົດການແມ່ນເປັນເອກະລັກໃນລະບົບຫຼັງຈາກນັ້ນ
ຄໍາສັ່ງປະຕິບັດ. ຢ່າງໃດກໍຕາມ, ຖ້າຫາກວ່າມີຫຼາຍ cpuses ໂດຍຊື່ນັ້ນ, ຫຼັງຈາກນັ້ນທ່ານຈະຕ້ອງການ
ເພື່ອລະບຸວ່າອັນໃດທີ່ທ່ານໝາຍເຖິງກັບເສັ້ນທາງເຕັມທີ່ຮາກຖານຢູ່ຕົ້ນໄມ້ cpuset ພື້ນຖານ.
ຕົວຢ່າງ, ສົມມຸດວ່າທ່ານມີຕົ້ນ cpuset ຕໍ່ໄປນີ້:
/cpusets
/ກຸ່ມ 1
/myset
/ ຂອງເຈົ້າ
/ກຸ່ມ 2
/myset
/ ຂອງເຈົ້າ
ຫຼັງຈາກນັ້ນ, ເພື່ອຍ້າຍຂະບວນການຈາກ myset ໃນກຸ່ມ 1 ໄປຫາ yourset ໃນກຸ່ມ 2, ທ່ານຈະຕ້ອງອອກ
ຄຳ ສັ່ງຕໍ່ໄປນີ້:
# cset proc --move --pid=50 --fromset=/group1/myset --toset=/group2/yourset
ທ່ານບໍ່ຈໍາເປັນຕ້ອງກັງວົນກ່ຽວກັບບ່ອນທີ່ຢູ່ໃນລະບົບໄຟລ໌ Linux ລະບົບໄຟລ໌ cpuset ຢູ່
ຕິດຕັ້ງ. ຄໍາສັ່ງ cset ດູແລມັນ. cpuses ໃດທີ່ຖືກກໍານົດໂດຍເສັ້ນທາງ (ເຊັ່ນ
ດັ່ງຂ້າງເທິງ), ແມ່ນເຮັດໄດ້ກ່ຽວກັບຮາກຂອງລະບົບໄຟລ໌ cpuset.
ໃຊ້ cset-proc ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net