增加FIFO大小限制

马丁·维格特(Martin Vegter)

多亏了我对其他问题的回答,我现在了解Linux上的FIFO,即/dev/xconsole缓冲区限制为64 KB。

如何将这个限制增加到128 KB?

显然,我将需要重新编译内核。很好,但是我必须在哪里更改内核源代码中的大小限制?

更改它是否安全,或者对其他组件有副作用?

我正在使用3.18内核。

斯蒂芬·查泽拉斯(Stephane Chazelas)

从Linux内核2.6.35开始,您可以使用F_SETPIPE_SZfnctl()增加管道的大小非特权用户的值限制为0到当前值fs.pipe-max-size sysctl(默认为1 MiB)之间。

您使用的值应大于64 KiB,并且是2的幂。

因此,您可以执行以下操作:

perl -MFcntl -e 'fcntl(STDIN, 1031, 1048576) or die $!' <> /dev/xconsole

(这里F_SETPIPE_SZ在我的系统上被硬编码为它的值,因为fcntl()我的版本无法使用特定于Linux的值perl)。

请注意,这fcntl()并不影响,/dev/xconsole/dev/xconsole打开时已实例化的管道缓冲区(由syslog任何应用程序在另一端读取消息,因此,在启动syslog之后每次启动时都需要这样做)。

现在,这是否是您应该做的是另一回事。管道是进程间的通信机制。它们并不是要存储数据。对于系统日志条目,64 KiB应该绰绰有余,因为它比典型的日志条目大几个数量级。

在您的情况下,您更有可能遇到问题,即从中读取应用程序的/dev/xconsole时间不够早或读取速度不够快。

无论如何,我建议不要更改全局默认管道尺寸。

这可以通过更改:

#define PIPE_DEF_BUFFERS        16

(以4 KiB页数表示)到中的其他内容include/linux/pipe_fs_i.h并非必须要修改其他东西以反映更改,或者该更改会以意想不到的方式影响其他事情,这并非没有可能。

如果将它的2的幂乘以> = 16,则破裂的可能性较小,但是请注意,它可能会严重影响全局系统性能,尤其是调度行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++增加int大小限制

来自分类Dev

IIS 7.0增加URL大小限制

来自分类Dev

IIS 7.0增加URL大小限制

来自分类Dev

Word大小随着javascript中的大小限制而增加

来自分类Dev

增加文件管理系统中文件下载大小的限制

来自分类Dev

有什么方法可以增加堆栈大小/递归限制?

来自分类Dev

如何增加curl GET请求的URL大小限制?

来自分类Dev

限制可以增加和减少字体大小的次数

来自分类Dev

增加将数据从csv导入Excel的大小限制

来自分类Dev

我想限制用户增加/减少字体大小

来自分类Dev

在 Azure 中,是否可以在不增加 VM 大小的情况下增加 NIC 带宽限制?

来自分类Dev

jQuery UI:当我增加/减少 div 的大小时,如何设置调整大小限制、纵横比

来自分类Dev

如何在Windows命令提示符下增加命令行参数的大小或限制

来自分类Dev

在上传到Dropbox时增加Heroku中文件上传大小的限制

来自分类Dev

增加内存限制/无法分配大小为69.2GB的向量

来自分类Dev

为.net Core API增加AWS Beanstalk中的请求大小限制

来自分类Dev

将字体大小限制增加和减少到最大和最小jQuery

来自分类Dev

增加EXT3文件系统时是否有大小限制?

来自分类Dev

Ubuntu 18.04 上 mysql 的大小限制是多少,如何增加它们?

来自分类Dev

在不增加堆大小的情况下修复超出 GC 开销限制的问题

来自分类Dev

如何将 SQLite 数据库的大小限制增加到 140TB?

来自分类Dev

增加VARCHAR的限制

来自分类Dev

增加内存的内存限制

来自分类Dev

如何增加textares的限制?

来自分类Dev

如何增加textares的限制?

来自分类Dev

增加内存的内存限制

来自分类Dev

如何增加UIButtonTypeInfoLight的大小

来自分类Dev

增加大小/选择

来自分类Dev

增加gradle堆大小

Related 相关文章

热门标签

归档