ວິທີການທົດສອບການໂຫຼດໂປແກຼມ CPU ທີ່ມີຄວາມໄວສູງແລະຄວາມກົດດັນໃນ Linux ໂດຍໃຊ້ເຄື່ອງມື Stress-ng


ໃນຖານະເປັນຜູ້ບໍລິຫານລະບົບ, ທ່ານອາດຈະຕ້ອງການກວດກາແລະຕິດຕາມສະຖານະຂອງລະບົບ Linux ຂອງທ່ານເມື່ອພວກເຂົາຕົກຢູ່ໃນຄວາມກົດດັນສູງ. ນີ້ສາມາດເປັນວິທີທີ່ດີ ສຳ ລັບຜູ້ເບິ່ງແຍງລະບົບແລະນັກຂຽນໂປແກຼມທີ່ຈະ:

<

  • ກິດຈະ ກຳ ປັບແຕ່ງລະບົບທີ່ດີໃນລະບົບ.
  • ຕິດຕາມກວດກາອິນເຕີເຟດລະບົບປະຕິບັດການ.
  • ທົດສອບສ່ວນປະກອບຂອງຮາດແວ Linux ຂອງທ່ານເຊັ່ນ: CPU, ໜ່ວຍ ຄວາມ ຈຳ, ອຸປະກອນແຜ່ນແລະອື່ນໆອີກຫລາຍຢ່າງເພື່ອສັງເກດເບິ່ງການປະຕິບັດຂອງມັນຢູ່ພາຍໃຕ້ຄວາມກົດດັນ.
  • ວັດແທກການໃຊ້ໄຟຟ້າທີ່ແຕກຕ່າງກັນໃນລະບົບ.
  • ໃນຄູ່ມືນີ້, ພວກເຮົາຈະພິຈາລະນາສອງເຄື່ອງມືທີ່ ສຳ ຄັນ, ຄວາມກົດດັນແລະຄວາມກົດດັນເພື່ອທົດສອບຄວາມກົດດັນພາຍໃຕ້ລະບົບ Linux ຂອງທ່ານ.

    1. ຄວາມກົດດັນ - ແມ່ນເຄື່ອງມືທີ່ໃຊ້ວຽກໂດຍທົ່ວໄປທີ່ຖືກອອກແບບມາເພື່ອເຮັດໃຫ້ລະບົບຂອງທ່ານມີມາດຕະການທີ່ມີການຕັ້ງຄ່າຂອງ CPU, ຫນ່ວຍຄວາມ ຈຳ, I/O ແລະຄວາມກົດດັນຂອງແຜ່ນ.

    2. ຄວາມກົດດັນ-ng - ແມ່ນສະບັບປັບປຸງຂອງເຄື່ອງມືສ້າງເຄື່ອງຈັກເຮັດວຽກຄວາມກົດດັນທີ່ທົດສອບລະບົບຂອງທ່ານ ສຳ ລັບຄຸນລັກສະນະດັ່ງຕໍ່ໄປນີ້:

    <

  • ຄອມພີວເຕີ້ CPU
  • ຂັບຂີ່ຄວາມເຄັ່ງຕຶງ
  • I/O ຊິ້ງຂໍ້ມູນ
  • ທໍ່ I/O
  • ການຖີ້ມຂີ້ເຫຍື່ອ cache
  • ຄວາມກົດດັນ VM
  • ເຕົ້າຮັບຄວາມກົດດັນ
  • ຂັ້ນຕອນການສ້າງແລະການສິ້ນສຸດ
  • ສະພາບການປ່ຽນສະພາບການ
  • ເຖິງແມ່ນວ່າເຄື່ອງມືເຫລົ່ານີ້ຈະດີ ສຳ ລັບການກວດກາລະບົບຂອງທ່ານ, ພວກມັນບໍ່ຄວນໃຊ້ໂດຍຜູ້ ນຳ ໃຊ້ລະບົບຄົນອື່ນ.

    ສິ່ງ ສຳ ຄັນ: ຂໍແນະ ນຳ ໃຫ້ທ່ານໃຊ້ເຄື່ອງມືເຫຼົ່ານີ້ດ້ວຍສິດທິຜູ້ໃຊ້ຮາກ, ເພາະວ່າມັນສາມາດກົດດັນໃຫ້ເຄື່ອງ Linux ຂອງທ່ານໄວແລະຫລີກລ້ຽງຂໍ້ຜິດພາດຂອງລະບົບບາງຢ່າງກ່ຽວກັບຮາດແວທີ່ອອກແບບບໍ່ດີ.

    ວິທີການຕິດຕັ້ງເຄື່ອງມື ‘ຄວາມກົດດັນ’ ໃນ Linux

    ການຕິດຕັ້ງເຄື່ອງມືຄວາມກົດດັນກ່ຽວກັບ Debian ແລະອະນຸພັນຂອງມັນເຊັ່ນ Ubuntu ແລະ Mint, ໃຫ້ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    $ sudo apt-get install stress
    

    ເພື່ອຕິດຕັ້ງຄວາມກົດດັນໃນ RHEL/CentOS ແລະ Fedora Linux, ທ່ານ ຈຳ ເປັນຕ້ອງເປີດຫໍສະມຸດ EPEL ແລະຫຼັງຈາກນັ້ນພິມ ຄຳ ສັ່ງ yum ຕໍ່ໄປເພື່ອຕິດຕັ້ງຄືກັນ:

    # yum install stress
    

    syntax ທົ່ວໄປ ສຳ ລັບການໃຊ້ຄວາມກົດດັນແມ່ນ:

    $ sudo stress option argument
    

    ບາງທາງເລືອກທີ່ທ່ານສາມາດໃຊ້ກັບຄວາມກົດດັນ.

    <

  • ເພື່ອ ນຳ ໄປສູ່ແຮງງານ N ທີ່ ໝູນ ໃຊ້ໃນ ໜ້າ ທີ່ sqrt(), ໃຊ້ຕົວເລືອກ –cpu N ດັ່ງຕໍ່ໄປນີ້.
  • ເພື່ອ ນຳ ໄປສູ່ພະນັກງານ N ທີ່ ໝຸນ ໄປໃນ ໜ້າ ທີ່ sync(), ໃຊ້ຕົວເລືອກ –io N ດັ່ງຕໍ່ໄປນີ້.
  • ເພື່ອ ນຳ ເອົາພະນັກງານ N ທີ່ປັ່ນປ່ວນໃສ່ ໜ້າ ທີ່ malloc()/ບໍ່ເສຍຄ່າ(), ໃຊ້ຕົວເລືອກ –vm N.
  • ເພື່ອຈັດສັນຄວາມ ຈຳ ຕໍ່ຜູ້ເຮັດວຽກ vm, ໃຫ້ໃຊ້ຕົວເລືອກ –vm-bytes N.
  • ແທນທີ່ຈະປ່ອຍແລະຈັດສັນຊັບພະຍາກອນຫນ່ວຍຄວາມ ຈຳ ໃຫ້ຟຣີ, ທ່ານສາມາດຈື່ ຈຳ ຄວາມຊົງ ຈຳ ທີ່ເປັນສີແດງໂດຍໃຊ້ຕົວເລືອກ –vm-keep.
  • ຕັ້ງເວລານອນເປັນ N ວິນາທີກ່ອນທີ່ຈະປ່ອຍຄວາມ ຈຳ ໂດຍປ່ອຍຕົວເລືອກ –vm-hang N.
  • ເພື່ອ ນຳ ໄປສູ່ແຮງງານ N ທີ່ ໝູນ ໃຊ້ໃນການຂຽນ()/ຍົກເລີກການເຊື່ອມຕໍ່(), ໃຊ້ຕົວເລືອກ –hdd N.
  • ທ່ານສາມາດ ກຳ ນົດເວລາ ໝົດ ເວລາຫຼັງຈາກ N ວິນາທີໂດຍໃຊ້ຕົວເລືອກ –timeout N.
  • ກຳ ນົດປັດໃຈລໍຂອງ N microseconds ກ່ອນວຽກງານໃດ ໜຶ່ງ ເລີ່ມຕົ້ນໂດຍໃຊ້ຕົວເລືອກ –backoff N ດັ່ງຕໍ່ໄປນີ້.
  • ເພື່ອສະແດງຂໍ້ມູນລາຍລະອຽດເພີ່ມເຕີມເມື່ອມີຄວາມກົດດັນ, ໃຫ້ໃຊ້ຕົວເລືອກ -v.
  • ໃຊ້ –help ເພື່ອເບິ່ງການຊ່ວຍເຫຼືອໃນການໃຊ້ຄວາມກົດດັນຫຼືເບິ່ງ ໜ້າ ເວັບ.
  • 1. ເພື່ອກວດກາຜົນກະທົບຂອງ ຄຳ ສັ່ງທຸກໆຄັ້ງທີ່ທ່ານ ດຳ ເນີນການ, ທຳ ອິດຕ້ອງ ດຳ ເນີນການ ຄຳ ສັ່ງ uptime ແລະບັນທຶກສະເລ່ຍການໂຫຼດ.

    ຖັດໄປ, ດຳ ເນີນ ຄຳ ສັ່ງຄວາມກົດດັນເພື່ອ ກຳ ຈັດພະນັກງານ 8 ຄົນທີ່ປົ່ງໃສ່ sqrt() ໝົດ ເວລາ 20 ວິນາທີ. ຫຼັງຈາກແລ່ນຄວາມເຄັ່ງຕຶງ, ອີກເທື່ອ ໜຶ່ງ ແລ່ນ ຄຳ ສັ່ງ uptime ແລະປຽບທຽບຄ່າສະເລ່ຍຂອງການໂຫຼດ.

    [email  ~ $ uptime
    [email  ~ $ sudo stress --cpu  8 --timeout 20
    [email  ~ $ uptime
    
    [email  ~ $ uptime    
     17:20:00 up  7:51,  2 users,  load average: 1.91, 2.16, 1.93     [<-- Watch Load Average]
    [email  ~ $ sudo stress --cpu 8 --timeout 20
    stress: info: [17246] dispatching hogs: 8 cpu, 0 io, 0 vm, 0 hdd
    stress: info: [17246] successful run completed in 21s
    [email  ~ $ uptime
     17:20:24 up  7:51,  2 users,  load average: 5.14, 2.88, 2.17     [<-- Watch Load Average]
    

    2. ເພື່ອເອົາພະນັກງານ 8 ຄົນປັ່ນປ່ວນໃສ່ sqrt() ໝົດ ເວລາ 30 ວິນາທີ, ສະແດງຂໍ້ມູນລະອຽດກ່ຽວກັບການປະຕິບັດງານ, ດຳ ເນີນການບັນຊານີ້:

    [email  ~ $ uptime
    [email  ~ $ sudo stress --cpu 8 -v --timeout 30s
    [email  ~ $ uptime
    
    [email  ~ $ uptime
     17:27:25 up  7:58,  2 users,  load average: 1.40, 1.90, 1.98     [<-- Watch Load Average]
    [email  ~ $ sudo stress --cpu 8 -v --timeout 30s
    stress: info: [17353] dispatching hogs: 8 cpu, 0 io, 0 vm, 0 hdd
    stress: dbug: [17353] using backoff sleep of 24000us
    stress: dbug: [17353] setting timeout to 30s
    stress: dbug: [17353] --> hogcpu worker 8 [17354] forked
    stress: dbug: [17353] using backoff sleep of 21000us
    stress: dbug: [17353] setting timeout to 30s
    stress: dbug: [17353] --> hogcpu worker 7 [17355] forked
    stress: dbug: [17353] using backoff sleep of 18000us
    stress: dbug: [17353] setting timeout to 30s
    stress: dbug: [17353] --> hogcpu worker 6 [17356] forked
    stress: dbug: [17353] using backoff sleep of 15000us
    stress: dbug: [17353] setting timeout to 30s
    stress: dbug: [17353] --> hogcpu worker 5 [17357] forked
    stress: dbug: [17353] using backoff sleep of 12000us
    stress: dbug: [17353] setting timeout to 30s
    stress: dbug: [17353] --> hogcpu worker 4 [17358] forked
    stress: dbug: [17353] using backoff sleep of 9000us
    stress: dbug: [17353] setting timeout to 30s
    stress: dbug: [17353] --> hogcpu worker 3 [17359] forked
    stress: dbug: [17353] using backoff sleep of 6000us
    stress: dbug: [17353] setting timeout to 30s
    stress: dbug: [17353] --> hogcpu worker 2 [17360] forked
    stress: dbug: [17353] using backoff sleep of 3000us
    stress: dbug: [17353] setting timeout to 30s
    stress: dbug: [17353] --> hogcpu worker 1 [17361] forked
    stress: dbug: [17353] [email  ~ $ uptime
     17:27:59 up  7:59,  2 users,  load average: 5.41, 2.82, 2.28     [<-- Watch Load Average]
    

    3. ເພື່ອເຮັດໃຫ້ພະນັກງານຂອງ malloc() ແລະບໍ່ເສຍຄ່າ() ເຮັດວຽກກັບເວລາ 60 ວິນາທີ, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

    [email  ~ $ uptime
    [email  ~ $ sudo stress --vm 1 --timeout 60s 
    [email  ~ $ uptime
    
    [email  ~ $ uptime
     17:34:07 up  8:05,  2 users,  load average: 1.54, 2.04, 2.11     [<-- Watch Load Average]
    [email  ~ $ sudo stress --vm 1 --timeout 60s 
    stress: info: [17420] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
    stress: info: [17420] successful run completed in 60s
    [email  ~ $ uptime
     17:35:20 up  8:06,  2 users,  load average: 2.45, 2.24, 2.17     [<-- Watch Load Average]
    

    4. ເພື່ອກະຕຸ້ນໃຫ້ ກຳ ມະກອນ 4 ຄົນ ໝູນ ວຽນ sqrt(), ກຳ ມະກອນ 2 ຄົນ ກຳ ລັງຂຸ້ນຂ້ຽວ(), ກຳ ມະກອນ 2 ຄົນທີ່ malloc()/ບໍ່ເສຍຄ່າ(), ໂດຍໃຊ້ເວລາບໍ່ເກີນ 20 ວິນາທີແລະຈັດສັນຄວາມ ຈຳ ຂອງ 256MB ຕໍ່ພະນັກງານ vm, ດຳ ເນີນການນີ້ ຄໍາສັ່ງຂ້າງລຸ່ມນີ້.

    [email  ~ $ uptime
    [email  ~ $ sudo stress --cpu 4 --io 3 --vm 2 --vm-bytes 256M --timeout 20s 
    [email  ~ $ uptime
    
    [email  ~ $ uptime
     17:40:33 up  8:12,  2 users,  load average: 1.68, 1.84, 2.02     [<-- Watch Load Average]
    [email  ~ $ sudo stress --cpu 4 --io 3 --vm 2 --vm-bytes 256M --timeout 20s
    stress: info: [17501] dispatching hogs: 4 cpu, 3 io, 2 vm, 0 hdd
    stress: info: [17501] successful run completed in 20s
    [email  ~ $ uptime
     17:40:58 up  8:12,  2 users,  load average: 4.63, 2.54, 2.24     [<-- Watch Load Average]