คำถามติดแท็ก sysctl

sysctl เป็นกลไกในการควบคุมอ็อพชันและขีด จำกัด ในเคอร์เนลของระบบปฏิบัติการแบบ Unix Sysctls สามารถใช้เพื่อปรับแต่งประสิทธิภาพหรือเปลี่ยนพฤติกรรมของระบบย่อยต่างๆ

4
การปรับแต่งประสิทธิภาพ FreeBSD: พารามิเตอร์ Sysctl, loader.conf, เคอร์เนล
ฉันต้องการแบ่งปันความรู้เกี่ยวกับการปรับ FreeBSD ผ่านsysctl.conf/ loader.conf / KENCONF/ ฯลฯ มันเริ่มต้นจากการนำเสนอของ Igor Sysoev (ผู้เขียนของ nginx) เกี่ยวกับ FreeBSD ที่ปรับได้ถึง 100,000-200,000 การเชื่อมต่อที่ใช้งานอยู่ FreeBSD เวอร์ชันใหม่กว่าสามารถรองรับได้มากขึ้น การรับสัญญาณสำหรับ FreeBSD7 - FreeBSD-CURRENT ตั้งแต่ 7.2 amd64 บางคนปรับได้ดีตามค่าเริ่มต้น ก่อนหน้า 7.0 บางคนเป็นบูตเท่านั้น (ตั้งค่าผ่าน /boot/loader.conf) หรือไม่มีอยู่เลย sysctl.conf: # No zero mapping feature # May break wine # (There are also reports about broken …

1
vm.overcommit_memory ทำงานอย่างไร
เมื่อฉันใช้การตั้งค่าเริ่มต้น: vm.overcommit_memory = 0 vm.overcommit_ratio = 50 ฉันสามารถอ่านค่าเหล่านี้ได้จาก/proc/meminfoไฟล์: CommitLimit: 2609604 kB Committed_AS: 1579976 kB แต่เมื่อฉันเปลี่ยนvm.overcommit_memoryจาก0เป็น2ฉันไม่สามารถเริ่มแอปพลิเคชันชุดเดียวกันที่ฉันสามารถเริ่มก่อนการเปลี่ยนแปลงโดยเฉพาะ amarok ฉันต้องเปลี่ยนvm.overcommit_ratioเป็น300ดังนั้นขีด จำกัด สามารถเพิ่มขึ้นได้ ตอนนี้เมื่อฉันเริ่ม amarok /proc/meminfoแสดงต่อไปนี้ CommitLimit: 5171884 kB Committed_AS: 3929668 kB เครื่องนี้มี RAM เพียง 1GiB แต่ amarok ทำงานได้โดยไม่มีปัญหาเมื่อvm.overcommit_memoryตั้งค่าเป็น 0 แต่ในกรณีที่ตั้งค่าเป็น2amarok จำเป็นต้องจัดสรรหน่วยความจำมากกว่า 2GiB มันเป็นพฤติกรรมปกติหรือไม่? ถ้ามีใครสามารถอธิบายได้ว่าทำไมเช่น firefox (ซึ่งใช้หน่วยความจำมากกว่า amarok 4-6x) ทำงานในลักษณะเดียวกันก่อนและหลังการเปลี่ยนแปลง?
49 memory  kernel  sysctl 

6
การปรับปรุงประสิทธิภาพ TCP บนเครือข่ายกิกะบิตที่มีการเชื่อมต่อจำนวนมากและปริมาณการใช้งานสูงของแพ็กเก็ตขนาดเล็ก
ฉันกำลังพยายามปรับปรุงปริมาณงาน TCP ผ่าน "เครือข่ายกิกะบิตที่มีการเชื่อมต่อจำนวนมากและปริมาณการใช้งานสูงของแพ็กเก็ตขนาดเล็ก" ระบบปฏิบัติการเซิร์ฟเวอร์ของฉันคือ Ubuntu 11.10 Server 64 บิต มีลูกค้าประมาณ 50,000 ราย (และเติบโต) ที่เชื่อมต่อกับเซิร์ฟเวอร์ของฉันผ่าน TCP Sockets (ทั้งหมดบนพอร์ตเดียวกัน) 95% ของแพ็คเก็ตของฉันมีขนาด 1-150 ไบต์ (ส่วนหัว TCP และส่วนของข้อมูล) ส่วนที่เหลือ 5% แตกต่างจาก 150 ถึง 4096+ ไบต์ ด้วยการกำหนดค่าด้านล่างเซิร์ฟเวอร์ของฉันสามารถรองรับปริมาณข้อมูลสูงถึง 30 Mbps (ดูเพล็กซ์เต็มรูปแบบ) คุณช่วยแนะนำวิธีปฏิบัติที่ดีที่สุดในการปรับแต่งระบบปฏิบัติการตามความต้องการของฉันได้หรือไม่? /etc/sysctl.congหน้าตาของฉันเป็นแบบนี้: kernel.pid_max = 1000000 net.ipv4.ip_local_port_range = 2500 65000 fs.file-max = 1000000 # net.core.netdev_max_backlog=3000 …

3
ตำแหน่งที่ถูกต้องในการตั้งค่า net.netfilter.nf_conntrack_buckets อยู่ที่ไหน
ฉันกำลังพยายามตั้งค่า net.netfilter.nf_conntrack_buckets ขณะบู๊ต ฉันเริ่มสันนิษฐานว่าสิ่งนี้สามารถทำได้ผ่าน sysctl.conf แต่ net.netfilter.nf_conntrack_buckets (และการกำหนดค่า net.netfilter อื่น ๆ ) ไม่ได้ถูกนำมาใช้เลย การเพิ่ม sysctl -p ไปยัง rc.local อนุญาตให้ใช้การกำหนดค่า net.netfilter ทั้งหมดด้วยข้อยกเว้นของ net.netfilter.nf_conntrack_buckets ฉันจะทราบด้วยว่าการพยายามตั้งค่านี้จากเทอร์มินัลโดยใช้ sysctl -w ส่งผลให้เกิดข้อผิดพลาด ': ปฏิเสธสิทธิ์บนคีย์' net.netfilter.nf_conntrack_buckets '' # This should be applied at boot net.netfilter.nf_conntrack_max=1966080 net.netfilter.nf_conntrack_buckets=245760 สถานที่ที่ถูกต้องในการทำเช่นนี้อยู่ที่ไหน

1
ความแตกต่างระหว่าง ulimit, launchctl, sysctl?
เมื่อจัดการขีด จำกัด ของระบบปฏิบัติการ (โดยเฉพาะ OSX) ความแตกต่างและการทับซ้อนระหว่างฟังก์ชันการทำงานและประวัติของเครื่องมือทั้งสามนี้คืออะไร: ulimit launchctl, launchd sysctl ฉันพบว่ามันสับสนที่จะปรับกระบวนการสูงสุดและ จำกัด การเปิดไฟล์บน OSX เป็นเรื่องสำคัญหรือไม่หากกระบวนการบางอย่างถูกเรียกใช้ผ่านเทอร์มินัลกับ GUI? อาจเกี่ยวข้อง: การระบุค่าเริ่มต้นของ ulimits บน OS X (10.5) อยู่ที่ไหน? ulimit -n และ / proc / sys / fs / file-max แตกต่างกันอย่างไร

4
การปรับแต่งเคอร์เนลพร้อมสิทธิพิเศษ Docker Container
ฉันกำลังสร้างที่เก็บเพื่อปรับการตั้งค่าเคอร์เนลสำหรับตัวโหลดบาลานซ์ ฉันต้องการปรับใช้การเปลี่ยนแปลงเหล่านั้นกับโฮสต์ในภาพโดยใช้คอนเทนเนอร์ที่มีสิทธิ์เดียว ตัวอย่างเช่น: docker run --rm --privileged ubuntu:latest sysctl -w net.core.somaxconn=65535 ในการทดสอบการเปลี่ยนแปลงจะมีผล แต่เฉพาะกับคอนเทนเนอร์นั้น ฉันอยู่ภายใต้การแสดงผลที่มีการเปลี่ยนแปลงที่เก็บสิทธิ์อย่างเต็มที่ไปที่ / proc จริง ๆ แล้วจะเปลี่ยนระบบปฏิบัติการพื้นฐาน $docker run --rm --privileged ubuntu:latest \ sysctl -w net.core.somaxconn=65535 net.core.somaxconn = 65535 $ docker run --rm --privileged ubuntu:latest \ /bin/bash -c "sysctl -a | grep somaxconn" net.core.somaxconn = 128 นี่เป็นวิธีที่คอนเทนเนอร์ที่มีสิทธิใช้งานควรทำงานหรือไม่ ฉันแค่ทำอะไรโง่ …
10 linux  docker  su  sysctl 

2
พอร์ตเครือข่าย Linux หมดแรง
ฉันได้ทำการวิจัยมากเท่าที่จะทำได้โดยไม่ต้องขุดลงในเคอร์เนล ดูเหมือนว่ามีข้อมูลจำนวนมากถูกบิดเบือน / ไม่ถูกต้องในเรื่องดังนั้นฉันหวังว่าสิ่งนี้จะตอบคำถามสำหรับฉันและคนอื่น ๆ ในทันที การพูด IPv4 อย่างเคร่งครัดเป็นไปได้หรือไม่ที่จะมีการอ่อนล้าของพอร์ต ให้ฉันอธิบาย: ดูเหมือนว่าจะมีพอร์ต 65535 ให้ใช้งาน 0 ไม่สามารถใช้ได้ ฉันได้อ่านแล้วว่าการอ่อนเพลียของพอร์ตนั้นต้องการ (src ip, src port, dst ip, dst port) เพื่อให้เป็นเอกลักษณ์ เพื่อให้ชัดเจนและสมมติว่าฉันสามารถใช้พอร์ตชั่วคราวได้ 100% ผ่านการตั้งค่า sysctl net.ipv4.ip_local_port_range และนี่คือคำถาม: นี่เป็นวิธีการทำงานหรือไม่ ฉันสามารถเชื่อมต่อได้ 65k จาก 127.0.0.1:(x) ถึง 127.0.0.1:80 ฉันสามารถเชื่อมต่อได้ 65k จาก 127.0.0.1:(x) ถึง 127.0.0.1:555 โดยทั่วไปอีกครั้งคำถามคือ (srcip, srcport, dstip, dstport) จะต้องไม่ซ้ำกันถูกต้องหรือไม่ …

3
ตั้งค่าพารามิเตอร์ sysctl.conf ด้วย Puppet
นี่เป็นเรื่องง่ายในCFEngine ... แต่ตอนนี้ฉันอยู่ในสภาพแวดล้อมหุ่นกระบอกและต้องสามารถกำหนด / ทำให้แน่ใจ / ตรวจสอบตัวแปร sysctl.conf บางอย่างได้ ในโลก CFEngine ฉันสามารถตรวจสอบเฉพาะบรรทัดภายในไฟล์ปรับแต่ง ... ฉันได้พบการอ้างอิงเล็กน้อยถึงโมดูล sysctlใน Puppet wiki และโครงการใน githubที่ดูเหมือนจะทำสิ่งที่ฉันต้องการ แต่ไม่มีการบันทึกไว้อย่างดี ฉันเพียงแค่มองหาวิธีการที่จะแก้ไขคู่ของค่าเหมือนและnet.core.rmem_default net.core.wmem_maxในรูปแบบของโครงการที่โฮสต์บน githubการกำหนดค่าในรายการ init.pp ของฉันควรมีลักษณะดังนี้: class sysctl { sysctl::value { "net.core.rmem_default": value => "9000000"; "net.core.wmem_default": value => "9000000"; "net.core.rmem_max": value => "16777216"; "net.core.wmem_max": value => "16777216"; } } เมื่อดูผ่านฟอรัมและรายชื่อผู้รับจดหมายดูเหมือนว่าจะมีความสับสนเกี่ยวกับความแตกต่างระหว่างปลั๊กอินและโมดูลหุ่นกระบอก คำศัพท์เกือบจะใช้แทนกันได้ …

2
วิธีรีเซ็ต sysctl เป็นค่าเริ่มต้นของ OS
ฉันไม่พบคำตอบใน man pages สำหรับ sysctl ไฟล์ sysctl.conf sysctl -p newsettings.confของฉันยังคงอยู่ในนั้นสถานะเริ่มต้นผมทดสอบหลายค่าและการตั้งค่าใหม่โหลดผ่าน ฉันแม้ว่ามันจะเพียงพอสำหรับการรีเซ็ตที่จะทำsysctl -p(ซึ่งหมายความว่ามันอ่านค่าจากsysctl.conf) แต่การsysctl -a | grep domainเปิดเผยอย่างรวดเร็วว่ายังมีการตั้งค่าเก่า ความคิดใด ๆ
10 debian  sysctl  reset 

4
คำแนะนำสำหรับการทำพารามิเตอร์ sysfs ยังคงมีอยู่ในการรีบูต
ฉันกำลังทดลองกับการเปลี่ยนแปลงขนาดใหญ่ของพารามิเตอร์รันไทม์ของระบบ Linux ที่เปิดเผยผ่านระบบไฟล์เสมือน sysfs วิธีที่มีประสิทธิภาพมากที่สุดในการรักษาพารามิเตอร์เหล่านี้เพื่อให้พวกเขายังคงมีอยู่ในการรีบูตในระบบสไตล์ RHEL / CentOS คืออะไร? มันเป็นเพียงกรณีของการทิ้งคำสั่งลงใน /etc/rc.local หรือไม่? มีสคริปต์เริ่มต้นที่เหมาะสมกับสิ่งนี้หรือไม่ ฉันยังคิดถึงมาตรฐานจากมุมมองการจัดการการกำหนดค่า มีระบบที่สะอาดเทียบเท่ากับsysctl?

3
ยืนยัน nf_conntrack_max ข้ามการรีบูต
ใน/procฉันมีสองรายการสำหรับ nf_conntrack_max: proc / sys / / net / netfilter / nf_conntrack_max proc / sys / / net / nf_conntrack_max ดูเหมือนว่าจะชี้ไปที่ค่าเดียวกับการเปลี่ยนหนึ่งยังเปลี่ยนอีก ด้วยชุดทั้งสองนี้ใน/etc/sysctl.conf: net.netfilter.nf_conntrack_max = 65528 net.ipv4.netfilter.ip_conntrack_max = 65535 ค่าจะยังคงอยู่ 32764 หลังจากรีบูตเพื่อให้การเปลี่ยนแปลงไม่ทำงาน มีใครเคยใช้มาก่อนหรือไม่ ฉันเดาว่าค่าเหล่านี้จะถูกนำไปใช้ก่อนที่จะโหลดโมดูลที่เกี่ยวข้อง แต่หวังว่าอาจมีคนรู้วิธีแก้ปัญหาอยู่แล้ว

1
TCP แพ็กเก็ตถูกส่งใหม่ 7 ครั้งเมื่อ sysctl tcp_retries1 ถูกตั้งค่าเป็น 3 - เพราะเหตุใด
Ubuntu 12.04 ฉันพยายามทำความเข้าใจให้ดีขึ้นว่ากี่ครั้งที่ TCP จะพยายามส่งแพ็กเก็ตใหม่เมื่อไม่ได้รับการยืนยันปลายทางที่ได้รับ หลังจากอ่านหน้าคน tcpดูเหมือนว่านี่ถูกควบคุมโดย sysctl tcp_retries1: tcp_retries1 (integer; default: 3) The number of times TCP will attempt to retransmit a packet on an established connection normally, without the extra effort of getting the network layers involved. Once we exceed this number of retransmits, we first have the …

2
ประสิทธิภาพของ Postgresql - การปรับ SHMMAX และ SHMALL
ฉันได้อ่านทุกสิ่งที่ออนไลน์เกี่ยวกับการปรับปรุงประสิทธิภาพของ postgres แต่ค่า "ถูกต้อง" สำหรับ SHMMAX และ SHMALL ยังคงหลบเลี่ยงฉันอยู่ ฉันทามติดูเหมือนว่า SHMMAX = total_memory / 4 และ SHMALL = total_memory / 2 เป็นค่าเริ่มต้นที่ปลอดภัย อย่างไรก็ตาม SHMALL สามารถวัดได้ในหน้าหรือไบต์และฉันไม่สามารถหาข้อมูลใด ๆ ที่ใช้กับ Ubuntu ได้ Ubuntu (หรือโดยทั่วไปแล้ว Debian) ใช้เพจหรือไบต์สำหรับ SHMALL หรือไม่

1
อัปโหลดช้า POST (การปรับเคอร์เนล Linux)
ฉันทำงานในแบ็กเอนด์ Caucho Resin ด้วย HAproxy ที่กำหนดค่าไว้ด้านหน้าพวกเขาในเซิร์ฟเวอร์เฉพาะ ตอนนี้ฉันกำลังจัดการกับปัญหาการอัพโหลดไฟล์ เว็บแอปพลิเคชันของเราอนุญาตให้อัปโหลดไฟล์สำหรับภาพหากฉันกดไปยังเซิร์ฟเวอร์อัปโหลดหนึ่งในเรซินของฉันเร็วมาก (5 วินาที) โดยไม่มีปัญหาใด ๆ จากนั้นเมื่อฉันเข้าชมการอัพโหลดอิมเมจโหลดบาลานเซอร์ของฉันจะช้ามาก (50/60 วินาที) ฉันได้ปรับ sysctl.conf ของ load balancer เพื่อให้ได้ memory มากขึ้นกับซ็อกเก็ต TCP net.core.rmem_max = 134217728 net.core.wmem_max = 134217728 net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 net.core.netdev_max_backlog = 250000 fs.file-max = 100000 แต่ไม่เห็นการปรับปรุงดังนั้นฉันจึงใช้เซิร์ฟเวอร์อื่นและติดตั้ง HAproxy ด้วยการกำหนดค่าการทำงานของฉันและการปรับแต่งเดียวกันในไฟล์ sysctl …
1 haproxy  sysctl 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.