linux操作系统修改共享内存的简单方法

近日在优化oracle的时候,遇到了oracle的SGA大小远远大于linux系统共享内存的最大值,以至于当我用ipcs命令查看的时候,oracle的SGA区被分成了10个段,这大大影响的oracle的反应速度。后来经过查阅资料,得出一下简便的修改共享内存的方法,和大家共享。

一般的以为修改系统共享内存需要修改内核程序,然后make,很麻烦。其实,只要在rc.local的加入一点东西,就可以免去修改内核的麻烦。修改方法如下:修改/etc/rc.d/rc.local文件。

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

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

echo 134217728 > /proc/sys/kernel/shmmax;

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

#如果系统内存是256M,则值为134217728 ;

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

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

linxu默认情况下的共享内存大小好像是32M,我的机器修改前用ipcs查看,oracle分段是10个,修改以后,只有1个。oracle在一个内存分段内,使得数据交换的速度有所提高。

时间: 2016-11-11

linux操作系统修改共享内存的简单方法的相关文章

Linux中修改环境变量及生效方法_Linux

在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是"永久的". 要让刚才的修改马上生效,需要执行以下代码 source /etc/profile 以上这篇Linux中修改环境变量及生效方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索

详解Linux 操作系统下安装rpm包的方法步骤_linux shell

第2代Linux操作系统在安装软件方面相当简单:第一步,搜索你要的软件,比如你要找一个游戏软件,它的名称叫myward,这个游戏软件的说明是:myown war game.Linux操作系统搜索这个软件包就只需要输入命令apt-cache searchmyward,或者输入软件名称的一部分apt-cache searchwar,或者你不知道软件名称. 下面有一张图可以清晰地表示linux软件应用的架构关系: 在Linux启动的时候.首先会启动内核(kernel),内核是一段计算机程序,这个程序直

Linux环境进程间通信共享内存

由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以. 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝.对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存则只拷贝两次数据[1]:一次从输入文件到共享内存区,另一次从共享内存区到输出文件.实际上,进程之间在共享内存时,并不总是读写少量数据后就解除映射,有新的通信时,再重新建立共享内存区域.而是保持共享区域,直到通信完毕为止,这样,数据内容一直保存

Linux系统手工释放内存缓存的方法教程

在Linux操作系统中,我们一般不需要去释放内存,因为系统已经将内存管理的很好.但是凡事也有例外,比如:1)当内存被缓存占用掉,导致系统使用SWAP空间并最终影响了系统性能:2)有些环境上部署了监控软件用于检测内存使用率的,那么当内存使用率达到一定上限(例如:80%)时,就会报警.因此在这些场景中,就需要执行释放内存(清理缓存)的操作了. Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的转换).Buffer Cache(针对磁盘块的读写)和Pa

将Linux代码移植到Windows的简单方法_unix linux

一.前言 Linux拥有丰富各种源代码资源,但是大部分代码在Windows平台情况是无法正常编译的.Windows平台根本无法直接利用这些源代码资源.如果想要使用完整的代码,就要做移植工作.因为C/C++ Library的不同和其他的一些原因,移植C/C++代码是一项困难的工作.本文将以一个实际的例子(Tar)来说明如何把Linux代码移植到Windows平台上.移植过程将尽量少修改代码,以便代码的运行逻辑不会发生任何变动.保留绝大部分软件主要功能. 二.准备工作 Tar是Linux平台下面一个

Linux操作系统下配置环境变量的方法

现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题. (1)用文本编辑器打开/etc/profile (2)在profile文件末尾加入: JAVA_HOME=/usr/share/jdk1.5.0_05 PATH=$JAVA_HOME/bin:

如何在Linux操作系统下检测内存泄漏

1.开发背景: 在 Windows 下使用 VC 编程时,我们通常需要 DEBUG 模式下运行程序,而后调试器将在退出程序时,打印出程序运行过程中在堆上分配而没有释放的内存信息,其中包括代码文件名.行号以及内存大小.该功能是 MFC Framework 提供的内置机制,封装在其类结构体系内部. 在 Linux 或者 Unix 下,我们的 C++ 程序缺乏相应的手段来检测内存信息,而只能使用 top 指令观察进程的动态内存总额.而且程序退出时,我们无法获知任何内存泄漏信息.为了更好的辅助在 lin

PHP修改memory_limit内存限制的方法详解

解决办法 方法1:编辑php.ini 在php.ini中 找到"memory_limit"这一项,如果没有,你可以在文件的尾部自己增加这个参数.以下是一些设置范例 memory_limit = 128M ; 可以将128M改为任何你想设置的值 方法2: .htaccess 说明: 这种方法只有在php以Apache模块来执行时才生效. 在你的网站的根目录下找到".htaccess"文件,如果没有,可以自己创建一个.然后把以下配置放入其中 php_value memo

简介Linux操作系统下VPN服务器的配置方法

虚拟专用网络(VPN) 虚拟专用网是借助公共网络internet来连接在不同地理位置的本地网络,网络间的访问就像本地访问一般.由于VPN在传输数据的过程中对数据进行了加密,尽管这些数据在公共网络上传输,其安全性还是很高的.这几年带VPN功能的硬件设备还是卖得很欢的,有些防火墙厂商还拿它的VPN功能作卖点呢.在这里我们不关注硬件VPN,只讲linux下的VPN. 1.安装VPN 包 需要dkms-2.0.10-2.fc5.noarch.rpm, kernel_ppp_mppe-1.0.2-3dkm