Questions tagged «sysctl»

sysctl是一种用于控制类Unix操作系统内核中的选项和限制的机制。Sysctls可用于调整性​​能或更改许多子系统的行为。

4
FreeBSD性能调整:Sysctl参数,loader.conf,内核
我想通过sysctl.conf/ loader.conf / KENCONF/等分享关于调优FreeBSD的知识。它最初是基于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 samba3) #security.bsd.map_at_zero=0 # Servers with threading software apache2 / Pound may want to rise following sysctl #kern.threads.max_threads_per_proc=4096 # Max backlog size # Note Application can …

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 该机器只有1GiB的RAM,但将amarok vm.overcommit_memory设置为0 时,其工作不会出现问题。但是,如果将2amarok 设置为,则amarok需要分配超过2GiB的内存。这是正常现象吗?如果是这样,那么谁能解释一下,为什么firefox(消耗的内存比amarok多4-6倍)为何在更改前后都以相同的方式工作?
49 memory  kernel  sysctl 

6
通过大量连接和小数据包高流量提高千兆网络上的TCP性能
我正在尝试通过“具有大量连接和小数据包高流量的千兆网络”来提高TCP吞吐量。我的服务器操作系统是Ubuntu 11.10 Server 64bit。 通过TCP套接字(都在同一端口上)连接到我的服务器的大约50,000个(并且正在增长)客户端。 我的数据包中有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 net.ipv4.tcp_sack=0 # net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.somaxconn = 2048 # net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 # net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syncookies = …

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启动某些进程是否重要? 可能相关: OS X(10.5)上指定的默认ulimit在哪里? ulimit -n和/ proc / sys / fs / file-max有何区别?

4
使用特权Docker容器进行内核调整
我正在建立一个容器来调整负载均衡器的内核设置。我宁愿使用单个特权容器将这些更改部署到映像中的主机。例如: docker run --rm --privileged ubuntu:latest sysctl -w net.core.somaxconn=65535 在测试中,更改仅对那个容器生效。我的印象是,使用具有完全特权的容器时,对/ proc的更改实际上会更改底层的OS。 $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 这是特权容器应该如何工作的吗? 我只是在做傻事吗? 进行持久更改的最佳方法是什么? 版本信息: Client version: 1.4.1 Client API version: …
10 linux  docker  su  sysctl 

2
Linux网络端口耗尽
在不深入研究内核源代码的情况下,我已经尽了最大的努力。关于该主题似乎有大量虚假信息/错误信息,所以我希望这能为我和其他人一劳永逸地回答这个问题。 严格说来IPv4,端口耗尽实际上有可能吗?让我解释: 似乎有65535个端口可以使用。0不可用。 我读过端口耗尽要求(src ip,src端口,dst ip,dst端口)元组是唯一的。 为了清楚起见,并假设我可以通过sysctl net.ipv4.ip_local_port_range设置使用100%的临时端口 这就是问题:这是如何工作的? 我可以从127.0.0.1:(x)到127.0.0.1:80有65k个连接 我可以从127.0.0.1:(x)到127.0.0.1:555有65k个连接 基本上再一次,问题是(srcip,srcport,dstip,dstport)必须是唯一的,对吗? 我无法打开从 IP“ A”到IP“ B”,端口“ N”的超过65k个连接 同样,单个IP不能在xxxx:80处打开到我的Web服务器的超过65k的连接,但是,只要它们来自不同的源IP,我就可以总体支持超过65k的连接。 最后,我对正在侦听的(传出)临时端口和传入端口有些困惑。我意识到,一旦建立了连接,连接的每一端都是对等的,并且相等,但是在此之前发生了: 例如,如果确实(srcip,srcport,dstip,dstport)元组必须是唯一的,那么如果启用,为什么会这样呢? net.ipv4.ip_local_port_range = 1024 65535 这允许使用1024-65535的临时端口,如果我有绑定在端口3306上的服务(例如,mySQL),则由于使用该端口,有时它们将无法启动。 这是否与以下事实有关:(这是我要验证的声明): (srcip,srcport,dstip,dstport)对于端口范围为1-65535的每个连接都必须是唯一的(不注意操作系统对临时端口的使用) 但是,对于要绑定的套接字,可以将其视为(srcip,srcport,*,*)。换一种说法,IP是否一定出于某种原因不能使用该端口? 我可以验证上述行为,即使用上面的确切sysctl行,由于这个原因,我将mySQL移到了一个低于1024的端口,因为它偶尔会非常随机地失败,因为假设操作系统正在使用该端口(3306)临时港口。

3
使用Puppet设置sysctl.conf参数
在CFEngine中这是一件轻而易举的事 ……但是我现在在Puppet环境中,需要能够分配/确保/检查某些sysctl.conf变量。在CFEngine的世界中,我可以简单地检查配置文件中的特定行... 在Puppet Wiki上找到了对sysctl模块的小引用,在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"; } } 通过论坛和邮件列表,似乎对Puppet插件和模块之间的差异感到困惑。这些术语几乎可以互换使用...我最终需要在我的客户端上启用pluginsync,以克服一些麻烦的错误。我以为这是一个模块! 当前客户端错误: info: Loading downloaded plugin /var/lib/puppet/lib/puppet/type/sysctl.rb info: Loading downloaded plugin /var/lib/puppet/lib/puppet/provider/sysctl/parsed.rb err: Could not retrieve catalog from remote server: Error 400 …

2
如何将sysctl重置为其操作系统默认值?
我在sysctl的手册页中找不到答案。我的sysctl.conf文件仍处于默认状态,我正在测试多个值并通过加载了新设置sysctl -p newsettings.conf。我虽然足以进行重置sysctl -p(这意味着它从中读取值sysctl.conf)就足够了。但是快速sysctl -a | grep domain显示仍然存在旧设置。 有任何想法吗?
10 debian  sysctl  reset 

4
有关使sysfs参数保持一致的建议
我正在尝试对通过sysfs虚拟文件系统公开的Linux系统运行时参数进行较大的更改。 维护这些参数以使它们在RHEL / CentOS风格的系统上重新启动后仍然有效的最有效方法是什么? 这仅仅是将命令转储到/etc/rc.local中的一种情况吗?是否有一个适合此的初始化脚本?我还从配置管理的角度考虑标准化。是否有一个等效的干净sysfs 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
将sysctl tcp_retries1设置为3时,TCP数据包被重传7次-为什么?
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 network layer update the route …

2
PostgreSQL性能-调整SHMMAX和SHMALL
我已经阅读了几乎所有有关提高postgres性能的在线信息,但是SHMMAX和SHMALL的“正确”价值仍然使我难以理解。 共识似乎是SHMMAX = total_memory / 4和SHMALL = total_memory / 2是安全的起始值。 但是,SHMALL可以用页面或字节来度量,我找不到有关在Ubuntu上使用的信息。 Ubuntu(或更常见的Debian)是否将页面或字节用于SHMALL?

2
在大型安装中修改内核共享内存设置
sysctl.conf狮子上文件的位置在哪里?在Snow Leopard中,/etc/sysctl.conf但现在该文件夹不再包含它。在Spotlight中搜索文件不会产生任何结果。 共享内存设置是否已移至其他conf文件?它叫什么名字? 编辑 我正在尝试修改计算机的内核共享内存设置。当找不到sysctl.conf正确位置的文件时,我使用推荐的设置创建了自己的文件,并将其放入/etc目录中。但是,运行sysctl -a仍然显示出旧的内存设置正确。 如何在狮子安装上修改这些设置?

1
为什么要在FreeBSD中更改net.inet.tcp.tcbhashsize?
在几乎每个FreeBSD网络调整文档中,我都能找到: # /boot/loader.conf net.inet.tcp.tcbhashsize=4096 这通常与一些无用的语句配对,例如“ TCP控制块哈希表调整”或“将其设置为合理的值”。man 4 tcp并没有太大帮助: tcbhashsize Size of the TCP control-block hash table (read-only). This may be tuned using the kernel option TCBHASHSIZE or by setting net.inet.tcp.tcbhashsize in the loader(8). 我能找到的唯一涉及到这一神秘事物的文档是“ 优化FreeBSD IP和TCP堆栈”中“传输层”下的“协议控制块查找”小节,但其描述更多地是关于使用它的潜在瓶颈。这似乎与将新的TCP段匹配到其侦听套接字有关,但是我不确定如何。 TCP控制块到底是做什么用的?为什么要将其哈希大小设置为4096或任何其他特定数字?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.