首页 > 编程知识 正文

linux修改用户密码的命令,linux设置全局变量

时间:2023-05-05 06:43:02 阅读:149856 作者:841

在linux上更改共享内存的最大值

System V

国际奥委会

参数

名字

说明

合理取价

SHMMAX

最大共享内存段大小(字节) )

最少几万亿(见文本) )。

SHMMIN

最小共享内存段大小(字节) )

1

壳牌

可用共享内存总数(字节或页)

对于字节,为SHMMAX和

一样; 对于页面,是Ceil(shmmax/page_size ) ) ) ) ) ) ) ) ) ) )。

SHMSEG

每个进程的最大共享内存段数

只需要一个段,但缺省值比这个高得多。

SHMMNI

整个系统的最大共享内存段数

与SHMSEG相似

为其他APP应用程序添加空间

SEMMNI

信号机识别符的最小数量(即,设置)

至少ceil(max_connections/16 ) )。

SEMMNS

系统范围的最大信号数

Ceil(max_connections/16 ) * 17

用于其他APP应用程序的空间

SEMMSL

每套信号灯的最小信号数

至少17

SEMMAP

信号映射的记录数

请参阅文本

SEMVMX

信号最大值

至少1000 ()默认值通常为32767,除非被强制,否则请勿修改。)。

最重要的共享内存参数是SHMMAX

每字节共享内存段可以具有的最大大小。

如果你从shmget那里收到的话

的Invalid argument

这样的错误信息,你很可能超过了限制。

根据系统的不同,系统中的共享内存总数(

)有限制。

请注意,这个数值必须足够大。 (注意: SHMALL

在许多系统中,按页数而不是字节数来计算。 )

系统中的最大信号数为SEMMNS

,然后单击,

因此,该值至少与max_connections

设定为相同的大小,每16个结合再添加一个。 参数SEMMNI

决定系统中一次可以存在的信

号灯集的数量。 因此,此参数必须至少为ceil(max_connections )。

减少允许的联接数是暂时绕过失败的方法,这种启动失败通常来自常规函数semget

的错误响应No space left on device

我非常困惑。

在某些情况下,可能需要增大SEMMAP

至少遵从SEMMNS

安排。 此参数定义红绿灯资源映射的大小

对于每个可用的连续红绿灯块,此映射将存储一条记录。

每次释放一系列信号时,它都会添加到映射中连接的释放块的条目中或注册为新条目。 如果映射充满了片段,则为、

释放的信号将会丢失。 因此,如果时间较长的信号机空间碎片化,则会变得比应有可用信号机的信号机少。

SEMMSL

使用参数确定一套红绿灯可以放入多少红绿灯,

改变方法

Linux

默认设置仅适用于小安装。 默认最大共享内存为32 MB。 但是,其他默认值相当大,

通常不需要改变。 最大的共享内存段设置可以使用sysctl

接口的设定。

例如,允许128 MB,共享内存的最大数量为2097152页(默认) :

$

sysctl-w kernel.shmmax=134217728

$

sysctl -w kernel.shmall=2097152

可以将这些设置放在/etc/sysctl.conf中

在重新启动后保持有效。

旧版本可能没有sysctl

虽然是程序,但可以通过操作/proc进行同样的变更

由文件系统执行:

$

echo 134217728/proc/sys/kernel/shmmax

$

echo 2097152/proc/sys/kernel/shmall

此外,可行的方法:

修正方法如下。 修改/etc/rc.d/rc.local文件。

在文件前面的注释后添加以下行:

#更改内核共享内存大小;

echo 134217728/proc/sys/kernel/shmmax;

#说明:这里的值是内存的一半;

#系统内存为256M时,值为134217728;

p>#如果系统内存是512M,则值为268435456;

修改完成以后,重起机器就搞定。

其它系统的修改方法

MacOS X

在 OS X 10.2 以及更造版本里, 编辑文件 /System/Library/StartupItems/SystemTuning/SystemTuning

并且用下列命令修改这些数值:

sysctl -w kern.sysv.shmmax

sysctl -w kern.sysv.shmmin

sysctl -w kern.sysv.shmmni

sysctl -w kern.sysv.shmseg

sysctl -w kern.sysv.shmall

在 OS X 10.3 及以后的版本里,这些命令移动到 /etc/rc

里面去了,必须在那里编辑。 你需要重新启动才能让设置生效。请注意 /etc/rc

通常会被

OS X 更新覆盖 (比如 10.3.6 到 10.3.7),所以每次更新后你可能都需要重新编辑。

在这个平台上,SHMALL

是用 4KB 页来度量的。

还要注意有些版本的 OS X 将拒绝把 SHMMAX

的数值数值为非 4096 的倍数。

SCO OpenServer

缺省配置时,只允许每段 512KB 共享内存。 要增大设置,首先进入 /etc/conf/cf.d

录。 要显示当前的以字节记的 SHMMAX

,运行

./configure -y SHMMAX

设置 SHMMAX

的新值:

./configure SHMMAX=value

这里 value

是你想设置的以字节记的新值。 设置完了以后SHMMAX

重新制作内核

./link_unix

然后重起。

AIX

至少对于版本 5.1 而言,我们有必要为类似 SHMMAX

这样的参数做特殊的配置,

因为这个参数可以配置为所有内容都当作共享内存使用。这就是类似 DB/2

这样的数据库常用的配置。

不过,我们可能有必要在 /etc/security/limits

里面修改全局 ulimit

ulimit

信息,因为文件大小的缺省硬限制(fsize

)以及文件数(nofiles

)可能太低了。

Solaris

至少到版本 2.6 为止,共享内存段的缺省最大设置对 PostgreSQL

来说是太低了。相关的设置可以在/etc/system

里面修改,

例如:

set shmsys:shminfo_shmmax=0x2000000

set shmsys:shminfo_shmmin=1

set shmsys:shminfo_shmmni=256

set shmsys:shminfo_shmseg=256

set semsys:seminfo_semmap=256

set semsys:seminfo_semmni=512

set semsys:seminfo_semmns=512

set semsys:seminfo_semmsl=32

你要重起系统令修改生效。

又见 http://sunsite.uakom.sk/sunworldonline/swol-09-1997/swol-09-insidesolaris.html

获取关于 Solaris

里面的共享内存的信息。

UnixWare

在 UnixWare

7

上,缺省配置里的最大共享内存段是 512 kB。 要显示SHMMAX

的当前值,

运行

/etc/conf/bin/idtune -g SHMMAX

就会显示以字节记的当前的缺省的最小和最大值。 要给SHMMAX

置一个新值,运行:

/etc/conf/bin/idtune SHMMAX value

这里 value

是你想设置的以字节记的新值。

设置完SHMMAX

后,重建内核

/etc/conf/bin/idbuild -B

然后重起。

BSD/OS

共享内存.

缺省时是只支持 4 MB 的共享内存。请记住共享内存是不能分页的;它是锁在

RAM 里面的。 要增加你的系统支持的共享缓冲区数目,向你的内核配置文件里增加下面的行:

options "SHMALL=8192"

options "SHMMAX=(SHMALL*PAGE_SIZE)"

SHMALL

以 4KB 页为单位计算,所以 1024 页面代表 4 M 共享内存。

所以上面的东西把共享内存区域增加到 32 MB。 对于运行 4.3 或者更新版本的人,你可能需要增大 KERNEL_VIRTUAL_MB

, 超过缺省的 248

做完上面的修改之后,然后编译内核并重起。

对于运行 4.0 或者更早的版本的, 请用 bpatch

找出当前内核的 sysptsize

值。它是启动的时候动态计算的。

$ bpatch -r sysptsize

0x9 = 9

然后,把 SYSPTSIZE

修改为在内核配置文件里的一个硬代码值。

用 bpatch

算出来的值,并且为你需要的每个额外的 4 MB 共享内存再加

1。

options "SYSPTSIZE=16"

sysptsize

不能用 sysctl

修改。

信号灯.

你可能还需要增加信号灯的数量;系统缺省的总数 60 只能允许大概 50 个 PostgreSQL

连接。 在内核配置文件里设置你需要的值,比如:

options "SEMMNI=40"

options "SEMMNS=240"FreeBSD

缺省设置只适合于很小的安装(比如,缺省 SHMMAX

是 32 MB)。 我们可以用

sysctl

或者 loader

接口来修改。 下面的参数可以用 sysctl

设置:

$

sysctl -w kern.ipc.shmall=32768

$

sysctl -w kern.ipc.shmmax=134217728

$

sysctl -w kern.ipc.semmap=256

要想让这些设置重启后有效,修改 /etc/sysctl.conf

如果用 sysctl

,那么剩下的信号灯设置是只读的, 但是信号灯可以在启动的时候,在

loader

提示符下设置:

(loader)

set kern.ipc.semmni=256

(loader)

set kern.ipc.semmns=512

(loader)

set kern.ipc.semmnu=256

类似的,这些东西可以在 /boot/loader.conf

中保存,

以便重启之后依然有效。

你可能还想配置内核,让把共享内存装载到 RAM 里,避免他们被交换到交换分区中。 这些可以通过使用 sysctl

设置 kern.ipc.shm_use_phys

来实现。

在 4.0 之前的 FreeBSD

版本类似 NetBSD

和 OpenBSD

(见下文)。

NetBSD

OpenBSD

编译内核时需要把选项 SYSVSHM

和 SYSVSEM

打开。 (缺省是打开的。)共享内存的最大尺寸是由选项SHMMAXPGS

(以页计)。 下面显示了一个如何设置这些参数的例子(OpenBSD

使用的是 option

):

options SYSVSHM

options SHMMAXPGS=4096

options SHMSEG=256

options SYSVSEM

options SEMMNI=256

options SEMMNS=512

options SEMMNU=256

options SEMMAP=256

你可能原意使用 sysctl

设置将共享内存锁在 RAM

中以避免它们被交换出去, 我们可以用 sysctl

设置 kern.ipc.shm_use_phys

来实现这个目的。

HP-UX

缺省设置看来对普通安装是足够的了。 在 HP-UX

10,SEMMNS

的出厂缺省是 128, 可能对大的数据库节点来说太小了。

IPC

可以在 System Administration Manager(系统管理器)

(SAM

)下面的 Kernel

Configuration

->Configurable

Parameters

配置。你配置完了以后敲 Create A

New Kernel

选项。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。