Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk mengkonfigurasi ulimit -n dengan berkesan menggunakan Golang?

Bagaimana untuk mengkonfigurasi ulimit -n dengan berkesan menggunakan Golang?

Mary-Kate Olsen
Lepaskan: 2024-11-03 03:53:02
asal
336 orang telah melayarinya

How to configure ulimit -n effectively using Golang?

Bagaimana untuk menetapkan ulimit -n daripada program golang?

Tugas biasa dalam pentadbiran sistem ialah menetapkan ulimit untuk mengawal penggunaan sumber. Untuk menetapkan bilangan maksimum deskriptor fail terbuka (ulimit -n), anda boleh menggunakan panggilan sistem setrlimit dan getrlimit.

<code class="go">import (
    "fmt"
    "syscall"
)

func main() {
    var rLimit syscall.Rlimit

    err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
    if err != nil {
        fmt.Println("Error Getting Rlimit ", err)
    }
    fmt.Println(rLimit)

    rLimit.Max = 999999
    rLimit.Cur = 999999

    err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
    if err != nil {
        fmt.Println("Error Setting Rlimit ", err)
    }

    err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
    if err != nil {
        fmt.Println("Error Getting Rlimit ", err)
    }
    fmt.Println("Rlimit Final", rLimit)
}</code>
Salin selepas log masuk

Memahami output:

<code class="Bash">$ uname -a
Linux peterSO 3.8.0-26-generic #38-Ubuntu SMP Mon Jun 17 21:43:33 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$ go build rlimit.go
$ ./rlimit
{1024 4096}
Error Setting Rlimit operation not permitted
Rlimit Final {1024 4096}
$ sudo ./rlimit
[sudo] password for peterSO:
{1024 4096}
Rlimit Final {999999 999999}</code>
Salin selepas log masuk

Output menunjukkan had sumber awal, percubaan yang gagal untuk menetapkan had dan had akhir selepas menjalankan program dengan sudo (memandangkan pengguna istimewa boleh mengubah suai had keras).

Isu yang berpotensi :

Perhatikan bahawa anda mungkin menghadapi ralat "operasi tidak dibenarkan" jika cuba menetapkan had tanpa sudo. Selain itu, pastikan anda telah mengemas kini versi Go anda untuk memasukkan pembetulan pepijat untuk Getrlimit dan Setrlimit pada pengedaran 32-bit Linux, seperti yang dinyatakan dalam respons yang diberikan.

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi ulimit -n dengan berkesan menggunakan Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan