标签: sysctl

增加 FreeBSD 线程

对于每个连接创建一个线程的网络应用程序(如 Pound),线程数可能成为您可以处理的并发连接数的瓶颈。

我正在运行 FreeBSD 8 x64:

$ sysctl kern.maxproc
kern.maxproc: 6164

$ sysctl kern.threads.max_threads_per_proc
kern.threads.max_threads_per_proc: 1500

$ limits
Resource limits (current):
  cputime              infinity secs
  filesize             infinity kB
  datasize             33554432 kB
  stacksize              524288 kB
  coredumpsize         infinity kB
  memoryuse            infinity kB
  memorylocked         infinity kB
  maxprocesses             5547
  openfiles              200000
  sbsize               infinity bytes
  vmemoryuse           infinity kB
  pseudo-terminals     infinity
  swapuse              infinity kB
Run Code Online (Sandbox Code Playgroud)

我想增加到kern.threads.max_threads_per_proc4096。假设每个线程以 512k 的堆栈大小开始,我还需要更改什么以确保我不会给我的机器灌水?

freebsd threads sysctl

5
推荐指数
1
解决办法
2498
查看次数

如何在linux中获取用户打开的文件数

他们是否有任何特定的命令或工具来获取 linux 中用户打开的文件数?

linux sysctl

5
推荐指数
1
解决办法
2万
查看次数

如何使 sysctl 网桥设置在重启后仍然保留?

我正在设置一个笔记本用于软件演示目的。该机器拥有 8GB RAM、Core i7 Intel CPU、128GB SSD,运行 Ubuntu 12.04 LTS 64 位。该笔记本电脑用作 KVM 主机并运行一些 KVM 来宾。

所有此类来宾都使用virbr0默认网桥。为了使它们能够使用多播相互通信,我将以下内容添加到主机的 中/etc/sysctl.conf,如下所示

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
Run Code Online (Sandbox Code Playgroud)

随后,man sysctl(8)我发布了以下内容:

sudo /sbin/sysctl -p /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)

我的理解是,这应该使这些设置在重新启动后仍然存在。我测试了它,并惊讶地发现以下内容:

root@sdn1 :/proc/sys/net/bridge# more *tables
::::::::::::::
bridge-nf-call-arptables
::::::::::::::
1
::::::::::::::
bridge-nf-call-ip6tables
::::::::::::::
1
::::::::::::::
bridge-nf-call-iptables
::::::::::::::
1
Run Code Online (Sandbox Code Playgroud)

所有默认设置都将恢复!

是的。我可以使用一些笨拙的“解决方法”,例如将 a/sbin/sysctl -p /etc/sysctl.conf放入主机中,/etc/rc.local但我宁愿“做对”。我是否误解了手册页或者我错过了什么?

感谢您的任何提示。

——扎克

ubuntu nat multicast sysctl kvm-virtualization

3
推荐指数
1
解决办法
2万
查看次数

Redis 和 Postgresql 在同一台机器上:vm.overcommit_memory=?

在 Redis 文档中,它明确指出vm.overcommit_memory应设置1为确保后台保存更新失败:http://redis.io/topics/faq

然而

在 postgresql 文档中,它说,vm.overcommit_memory应该设置2为避免 post master 进程不会被 oom 杀手杀死:http://www.postgresql.org/docs/9.3/static/kernel-resources.html

现在看来,这是自相矛盾的。我应该怎么办?

我的 redis 数据库的限制为 20GB。服务器拥有 252GB 物理 RAM。Postgresql 很少使用超过 100GB 的物理内存。

PS:我使用的是 ubuntu 14、Redis 3.0 和 Postgresql 9.3

postgresql sysctl redis

3
推荐指数
1
解决办法
1606
查看次数

错误:“net.ipv4.netfilter.ip_conntrack_max”是一个未知的密钥

我在使用 sysctl 的 Ubuntu 10.04.3 LTS x64 上遇到问题net.ipv4.netfilter.ip_conntrack_max 。如果我在 shell 上运行这个命令,我会得到一个错误:

error: net.ipv4.netfilter.ip_conntrack_max" is an unknown key.
Run Code Online (Sandbox Code Playgroud)

重新启动后,它发生在我们的两台机器上。sysctl 值net.ipv4.netfilter.ip_conntrack_count和所有其他 conntrack 条目也受到影响。

这确实有问题,因为我们有一个非常高的负载/流量系统,我编写了一个 Nagios 脚本来检查这个值,因为我们过去在这个值上有几个问题。在其他机器上,我已将 设置conntrack_max为 196608 以解决任何问题,但现在我无法在受影响的机器上设置该值。目前是否设置了任何默认值?

有没有人想在我的系统上取回这两个值?

谢谢

ubuntu kernel kernel-modules sysctl conntrack

2
推荐指数
1
解决办法
2万
查看次数

/etc/sysctl.conf 中的 Linux 网络主机安全设置

在寻找更多保护 Linux 服务器的方法时,我发现了以下/etc/sysctl.conf配置。它就这样来了,没有太多解释。在生产环境(使用 Ubuntu 12.04 LTS)上使用它之前,我想知道它在 Web 服务器上的含义。

# Avoid a smurf attack
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Turn on protection for bad icmp error messages
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Turn on syncookies for SYN flood attack protection
net.ipv4.tcp_syncookies = 1

# Turn on and log spoofed, source routed, and redirect packets
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

# No source routed packets here
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# Turn on reverse path filtering
net.ipv4.conf.all.rp_filter = 1 …
Run Code Online (Sandbox Code Playgroud)

security linux sysctl

2
推荐指数
1
解决办法
4239
查看次数

net.ipv6.conf.all.forwarding = 1 是未知密钥

我的系统很少有 ipv6 地址。我想将请求从一个系统转发到另一个系统。因此我保留了这个选项

net.ipv6.conf.all.forwarding = 1

在 sysctl.conf 中

但是请求没有像在 ipv4 中那样被转发,它也给我在启动时出错。net.ipv6.conf.all.forwarding 1 是未知密钥

ipv6 keys forwarding ip-forwarding sysctl

1
推荐指数
1
解决办法
4143
查看次数

如何在 CentOS 7 上可靠地设置 net.core.ipv4.conf.rp_filter = 0?

我想在 CentOS 7 机器上禁用反向路径过滤。我有一个文件/etc/sysctl.d/包含以下内容,试图为我的所有网络接口禁用它:

net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.enp1s0f0.rp_filter = 0
net.ipv4.conf.enp1s0f1.rp_filter = 0
net.ipv4.conf.enp1s0f2.rp_filter = 0
net.ipv4.conf.enp1s0f3.rp_filter = 0
net.ipv4.conf.ens1f0.rp_filter = 0
net.ipv4.conf.ens1f1.rp_filter = 0
net.ipv4.conf.lo.rp_filter = 0
Run Code Online (Sandbox Code Playgroud)

但是,启动后,alldefault条目仍然设置为 1。我必须在启动系统后手动设置它们,以根据需要将它们设置为 0。同样,如果我通过 停止并重新启动网络systemctl restart network.service,它们将再次重置为 1。

有什么办法可以让这个设置按照我想要的方式进行吗?

networking sysctl centos7

1
推荐指数
1
解决办法
1万
查看次数