Jadual Kandungan
2. Menggunakan cgroups (kumpulan kawalan) untuk kawalan halus
Opsyen A: Menggunakan systemd-run (paling mudah untuk proses satu kali)
Pilihan B: Manual Cgroups v2 (lebih banyak kawalan)
3. Menggunakan nice dan cpulimit untuk kawalan CPU
nice - Laraskan keutamaan penjadualan proses
cpulimit - Aktif mengehadkan peratusan CPU
4. Mengehadkan cakera I/O dengan ionice
Ringkasan: Alat mana yang hendak digunakan?
Rumah Tutorial sistem LINUX Linux Cara Mengehadkan Penggunaan Sumber Proses

Linux Cara Mengehadkan Penggunaan Sumber Proses

Aug 16, 2025 pm 02:29 PM

Untuk mengehadkan penggunaan sumber proses di Linux, alat yang sesuai harus dipilih mengikut jenis sumber: 1. Gunakan ULIMIT untuk mengehadkan memori, saiz fail, bilangan fail terbuka dan masa CPU satu proses, tetapi tidak menyokong batasan lebar CPU atau I/O; 2. Gunakan cgroups (melalui sistem yang dikendalikan oleh sistem atau manual) untuk mencapai kawalan halus CPU, memori dan jalur lebar I/O, yang sesuai untuk sistem moden dan diterima pakai oleh teknologi kontena seperti Docker; 3. Gunakan NICE untuk menyesuaikan keutamaan penjadualan CPU proses untuk mengurangkan daya saing sumbernya apabila sistem sibuk, atau menggunakan cpulimit untuk menghentikan proses berhenti secara dinamik untuk mengehadkan penggunaan CPU; 4. Gunakan ionice untuk menetapkan keutamaan I/O dan menggabungkan cgroups v2's io.max melaksanakan had keras pada jalur lebar I/O; Ringkasnya, disyorkan bahawa sistem yang dikendalikan oleh SystemD digabungkan dengan cgroups sebagai penyelesaian sekatan sumber yang paling mudah. ULIMIT sesuai untuk senario mudah, dan cpulimit sesuai untuk sekatan cepat penggunaan CPU. Pilihan akhir bergantung kepada versi sistem dan keperluan ketat.

Linux Cara Mengehadkan Penggunaan Sumber Proses

Jika anda perlu mengehadkan penggunaan sumber (CPU, memori, cakera I/O, dan lain-lain) proses di Linux, terdapat beberapa alat dan mekanisme terbina dalam yang boleh anda gunakan. Berikut adalah kaedah yang paling praktikal dan disokong secara meluas:


1. Menggunakan ulimit untuk menyekat sumber setiap proses

ulimit adalah shell yang dibina yang mengawal had sumber untuk proses bermula dari shell itu. Ia berguna untuk menetapkan had seperti memori maksimum, saiz fail, bilangan fail terbuka, dan masa CPU.

Penggunaan biasa:

 # Hadkan memori maya hingga 500 MB
ULIMIT -V 512000

# Hadkan masa CPU hingga 60 saat
ULIMIT -T 60

# Hadkan saiz fail max hingga 10 mb
ULIMIT -F 10240

# Hadkan bilangan deskriptor fail terbuka
ULIMIT -N 256

Contoh:

 ULIMIT -V 512000
./your_program

⚠️ Nota: ulimit hanya mempengaruhi proses shell dan kanak -kanak semasa. Ia tidak menyokong pembatas jalur lebar CPU atau I/O.


2. Menggunakan cgroups (kumpulan kawalan) untuk kawalan halus

Untuk mengehadkan sumber yang lebih maju dan fleksibel (terutamanya CPU dan memori), gunakan cgroups . Sistem Linux moden menggunakan cgroups v2 , sering diuruskan melalui systemd atau secara langsung melalui sistem fail.

Opsyen A: Menggunakan systemd-run (paling mudah untuk proses satu kali)

 # Hadkan proses hingga 50% CPU dan memori 500MB
Sistem-run \
  -Scope \
  --cpu-quota = 50000% \
  --Mory-Limit = 500m \
  ./your_program
  • --cpu-quota=50000% bermaksud 50% daripada satu teras CPU (100% = 1 teras penuh, jadi 50000% = 50%).
  • --memory-limit=500M membunuh proses jika ia melebihi 500 MB.

Pilihan B: Manual Cgroups v2 (lebih banyak kawalan)

  1. Buat Kumpulan:

     sudo mkdir/sys/fs/cgroup/terhad
  2. Tetapkan Had Memori:

     Echo 536870912 | sudo tee /sys/fs/cgroup/limited/memory.max # 512 MB
  3. Tetapkan had CPU (misalnya, 20% daripada satu teras):

     Echo 20000 | sudo tee /sys/fs/cgroup/limited/cpu.max
    # Format: "Tempoh Maksimum" → "20000 100000" bermaksud 20% CPU
    echo "20000 100000" | sudo tee /sys/fs/cgroup/limited/cpu.max
  4. Tambahkan proses ke dalam cgroup:

     ./your_program &
    echo $! | sudo tee /sys/fs/cgroup/limited/cgroup.procs

Kaedah ini berkuasa dan digunakan oleh runtime kontena seperti Docker.


3. Menggunakan nice dan cpulimit untuk kawalan CPU

nice - Laraskan keutamaan penjadualan proses

Tidak mengehadkan penggunaan CPU, tetapi mengurangkan keutamaan supaya ia mendapat kurang CPU apabila sistem sibuk.

 bagus -n 19 ./your_program
  • -n 19 adalah keutamaan yang paling rendah.

cpulimit - Aktif mengehadkan peratusan CPU

Pasang (jika tidak tersedia):

 sudo apt memasang cpulimit # debian/ubuntu

Hadkan proses berjalan dengan nama atau PID:

 cpulimit -l 30 -p $ (pgrep your_program)

Atau melancarkan proses dengan had:

 cpulimit -l 30 -./your_program

cpulimit berfungsi dengan menghentikan proses menggunakan SIGSTOP / SIGCONT , jadi ia tidak sempurna lancar tetapi berkesan.


4. Mengehadkan cakera I/O dengan ionice

Gunakan ionice untuk mengawal keutamaan I/O (usaha terbaik, bukan had keras).

 # Berlari dengan keutamaan Idle I/O (hanya menggunakan cakera semasa terbiar)
ionice -c 3 ./your_program

# Atau keutamaan yang rendah (Kelas 2, Tahap 7)
ionice -c 2 -n 7 ./your_program

Untuk mengehadkan kadar I/O yang keras, gunakan cgroups v2 dengan io.max (serupa dengan had memori/CPU).

Contoh:

 # Hadkan hingga 10 Mb/s Baca, Tulis 5 Mb/s
echo "rbytes = 10485760 wbytes = 5242880" | sudo tee /sys/fs/cgroup/limited/io.max

Ringkasan: Alat mana yang hendak digunakan?

Sumber Alat yang disyorkan
Ingatan systemd-run --memory-limit atau Cgroups
Cpu systemd-run --cpu-quota , cgroups , atau cpulimit
Saiz fail / fail terbuka ulimit
Keutamaan CPU nice
I/O Keutamaan ionice
I/O Bandwidth cgroups v2 io.max

Bagi kebanyakan pengguna, systemd-run dengan cgroup adalah cara paling bersih untuk menghadkan CPU dan memori. Untuk skrip dan kes mudah, ulimit mencukupi. Untuk sistem yang lebih lama atau topi CPU cepat, cpulimit berguna.

Pada asasnya, ia bergantung pada versi Linux anda dan betapa ketat hadnya.

Atas ialah kandungan terperinci Linux Cara Mengehadkan Penggunaan Sumber Proses. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1598
276
Bagaimana cara memasang perisian di Linux menggunakan terminal? Bagaimana cara memasang perisian di Linux menggunakan terminal? Aug 02, 2025 pm 12:58 PM

Terdapat tiga cara utama untuk memasang perisian di Linux: 1. Gunakan pengurus pakej, seperti apt, dnf atau pacman, dan kemudian laksanakan perintah pemasangan selepas mengemas kini sumber, seperti sudoaptinstallcurl; 2. Untuk fail .deb atau .rpm, gunakan arahan dpkg atau rpm untuk memasang, dan membaiki kebergantungan apabila diperlukan; 3. Gunakan Snap atau FlatPak untuk memasang aplikasi di seluruh platform, seperti nama perisian sudosnapinstall, yang sesuai untuk pengguna yang mengejar kemas kini versi. Adalah disyorkan untuk menggunakan pengurus pakej sistem sendiri untuk keserasian dan prestasi yang lebih baik.

Cara menjadualkan tugas di Linux dengan Cron dan Anacron Cara menjadualkan tugas di Linux dengan Cron dan Anacron Aug 01, 2025 am 06:11 AM

cronisusedforpreciseschedulingonalways-onsystems, manakalaCronensureSperiodictasksrunonsystemsthataren'tcontinuouslypowered, suchaslaptops; 1.usecronforexacttiming (cth

Panduan Terbaik untuk Permainan Berprestasi Tinggi di Linux Panduan Terbaik untuk Permainan Berprestasi Tinggi di Linux Aug 03, 2025 am 05:51 AM

Pilihpop! _Os, Ubuntu, Nobaralinux, OrarchlinuxforoptimalgamingperformanceWithMinimaloverhead.2.InstallOfficialNvidiaprietary DRIVERSFORNVIDIAGPUS, Pastikan-ke-Datemesaandkernelversionsforamdandintelgpus.3.enableTheperFormanceCpugovernor, Usealow-Latenc

Apakah kebaikan dan keburukan utama Linux vs Windows? Apakah kebaikan dan keburukan utama Linux vs Windows? Aug 03, 2025 am 02:56 AM

Linux sesuai untuk perkakasan lama, mempunyai keselamatan yang tinggi dan boleh disesuaikan, tetapi mempunyai keserasian perisian yang lemah; Perisian Windows kaya dan mudah digunakan, tetapi mempunyai penggunaan sumber yang tinggi. 1. Dari segi prestasi, Linux ringan dan cekap, sesuai untuk peranti lama; Windows mempunyai keperluan perkakasan yang tinggi. 2. Dari segi perisian, Windows mempunyai keserasian yang lebih luas, terutama alat dan permainan profesional; Linux perlu menggunakan alat untuk menjalankan beberapa perisian. 3. Dari segi keselamatan, pengurusan kebenaran Linux lebih ketat dan kemas kini adalah mudah; Walaupun Windows dilindungi, ia masih terdedah kepada serangan. 4. Dari segi kesukaran penggunaan, lengkung pembelajaran Linux adalah curam; Operasi Windows adalah intuitif. Pilih mengikut keperluan: Pilih Linux dengan prestasi dan keselamatan, dan pilih Windows dengan keserasian dan kemudahan penggunaan.

Kepentingan Penyegerakan Masa pada Linux dengan NTP Kepentingan Penyegerakan Masa pada Linux dengan NTP Aug 01, 2025 am 06:00 AM

TimesynchronizationiscialforsystemreliabilityandsecuritybecauseSonsistentTimeCaSesLogConfusion, SecurityFailures, MisfiredScheduledTasks, andDistribeButeStemerRors;

Memahami Konfigurasi RAID pada Pelayan Linux Memahami Konfigurasi RAID pada Pelayan Linux Aug 05, 2025 am 11:50 AM

RawaMProvessToragePerformanceandreliabilityonLinuxServersthroughvariousConfigurations; RAID0OffersSpeedButnoredundance; RAID1ProvidesMirroringforriticalDatawith50�PacityLoss;

Linux Cara Mengaktifkan dan Melumpuhkan Perkhidmatan di Boot Linux Cara Mengaktifkan dan Melumpuhkan Perkhidmatan di Boot Aug 08, 2025 am 10:23 AM

Untuk menguruskan permulaan perkhidmatan Linux, gunakan arahan SystemCTL. 1. Periksa status perkhidmatan: SystemCtLStatus boleh menyemak sama ada perkhidmatan berjalan, didayakan atau dilumpuhkan. 2. Membolehkan permulaan perkhidmatan: sudosystemctlenable, seperti sudosystemctlenablenginx. Jika ia bermula pada masa yang sama, gunakan sudosystemtlenable-nownginx. 3. Lumpuhkan permulaan perkhidmatan: Sudosystemctldisable, seperti sudosystemctldisableCups. Sekiranya ia dihentikan pada masa yang sama, gunakan sudosystemctldisabl

Menyediakan persekitaran pembangunan di Linux untuk Python Menyediakan persekitaran pembangunan di Linux untuk Python Aug 03, 2025 am 12:26 AM

InstallPythonandessentialtoolsusingyourdistribution’spackagemanager,ensuringpython3-venvandpython3-devareincludedforenvironmentisolationandCextensions.2.Alwaysusevirtualenvironmentsbyrunningpython3-mvenvmyproject_envandactivatewithsourcemyproject_env

See all articles