Linux Cara Mengehadkan Penggunaan Sumber Proses
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.
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)
Buat Kumpulan:
sudo mkdir/sys/fs/cgroup/terhad
Tetapkan Had Memori:
Echo 536870912 | sudo tee /sys/fs/cgroup/limited/memory.max # 512 MB
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
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 menggunakanSIGSTOP
/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!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

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.

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

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

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.

TimesynchronizationiscialforsystemreliabilityandsecuritybecauseSonsistentTimeCaSesLogConfusion, SecurityFailures, MisfiredScheduledTasks, andDistribeButeStemerRors;

RawaMProvessToragePerformanceandreliabilityonLinuxServersthroughvariousConfigurations; RAID0OffersSpeedButnoredundance; RAID1ProvidesMirroringforriticalDatawith50�PacityLoss;

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

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