当前位置:  技术问答>linux和unix

怎样增大unix进程数?(来着有分)

    来源: 互联网  发布时间:2015-03-12

    本文导语:  操作系统是UNIX7,数据库是ORACLE7。3,当程序运行到一定时候出现"监听程序无发起动专用服务器进程“ ,我通过v$session看到当记录到90左右出现。我怀疑是process设置太小,于是增大到300,但依然出现,我怀疑UNIX的进...

操作系统是UNIX7,数据库是ORACLE7。3,当程序运行到一定时候出现"监听程序无发起动专用服务器进程“ ,我通过v$session看到当记录到90左右出现。我怀疑是process设置太小,于是增大到300,但依然出现,我怀疑UNIX的进程设置太小,想增大。怎样增大?
谢谢!解决给全分~~

|
和其他操作系统一样,监听队列(listen queue)是首要限制条件。下面是Aaron Gifford  对BSDI 1.x,2.x和FreeBSD 2.0(包括旧版本)上的建议。  
编辑下面两个文件:  
/usr/include/sys/socket.h  
/usr/src/sys/sys/socket.h  
在每个文件中,搜寻:  
    /*  
     * Maximum queue length specifiable by listen.  
     */  
    #define SOMAXCONN       5  
将5修改为任何可以工作的值即可。经测试调整到32是不会有什么问题的。  
修改后,重新编译kernel和Apache Server然后重新启动。  
FreeBSD 2.1在SOMAXCONN设置为32时工作的非常好。  
附录:BSD服务器在重负载下Apache的性能调整  
From Chuck Murcko   

如果正运行着一个非常繁忙的BSD Apache服务器并且系统的反应很慢,那么如下工作将很有用处:  
    运行vmstat检查内存使用情况、page/swap利用率等  
    运行netstat -m检查mbuf使用情况  
    运行fstat检查文件描述符使用情况  
这些应用提供给你该如何调整kernel的信息以及是否应该增加一些内存。下面是一个有很重负载的BSD服务器的kernel配置参数(实际是BSDI服务器,但是与FreeBSD和4.4-Lite相关),系统其他参数没有变化。  

maxusers    256  

maxusers对其他kernel参数产生影响:  

    进程的最大数目  
    每个用户进程的最大数目  
    系统打开文件数目限制  
    每个用户打开文件数目限制  
    mbuf clusters最大数目  
    Proc/pgrp hash表大小  

这些引申参数的定义公式在/usr/src/sys/conf/param.c中。这些计算出来的参数部分会被kernel配置文建里自己定义的值覆盖:  

# Network options. NMBCLUSTERS defines the number of mbuf clusters and  
# defaults to 256. This machine is a server that handles lots of traffic,  
# so we crank that value.  
options         NMBCLUSTERS=4096        # mbuf clusters at 4096  

#  
# Misc. options  
#  
options         CHILD_MAX=512           # maximum number of child processes  
options         OPEN_MAX=512            # maximum fds (breaks RPC svcs)  

在许多情况下,NMBCLUSTERS应该设置的比第一眼看上去需要设置的值大的多。这是因为如果浏览器在传输中中断了连接,与特定连接相关的socket fd要在TIME_WAIT状态等几分钟才释放,在等待时mbuf并没有释放。另外,在服务器的timeouts中,一些连接会停留在FIN_WAIT_2状态,这个状态不会超时,浏览器又不会发出最终的FIN信号。  

关于mbuf clusters更多的信息(From sys/mubf.h)  

/*  
 * Mbufs are of a single size, MSIZE (machine/machparam.h), which  
 * includes overhead.  An mbuf may add a single "mbuf cluster" of size  
 * MCLBYTES (also in machine/machparam.h), which has no additional overhead  
 * and is used instead of the internal data area; this is done when  
 * at least MINCLSIZE of data must be stored.  
 */  

CHILD_MAX和OPEN_MAX设置成允许512个子进程(与每用户最大进程数不同)和文件描述符。这个值可以根据你的特殊配置进行修改(如果你的模块或CGI要打开许多文件时,就设置一个较大的OPEN_MAX)。如果在同一机器上除httpd外还有其他许多工作,就需要设置较大的NPROC。该例中NPROC的值来源于maxusers。  

增大listen() queue的大小,需要调整SOMAXCONN的值。SOMAXCONN不是来自于maxusers的。所以需要自己增大这个值。目前,这个值在sys/socket.h中设置。调整这个参数最好的方式时run-time(运行时更改),这要比在头文件中修改要好。要在运行时更改,编辑/etc/rc.local,增加:  

   /usr/sbin/sysctl -w kern.somaxconn=256  

这里使用256,可以进行更改以适合你的需要。许多情况下,设置成128就可以了。  

警告:  

如果配置的kernel使用的资源超过了你可使用的系统RAM的数量,系统可能不能启动。保证任何时候有一个可以启动系统的kernel。使用一些系统工具了解一下你是否需要增加一些内存。  

当OPEN_MAX大于256时,RPC服务会失败。这是由于原始的RPC库的一个函数使用1 byte保存文件描述符导致的。BSDI release 2.1解决了部分问题,但最终的解决需要等待重新设计RPC。  

最后还有一个在Apache中对子进程配置的硬限制。  

对Apache 1.0.5以后的版本,需要改变httpd.h中HARD_SERVER_LIMIT的定义并重新编译才能运行超过150个httpd进程。  

在conf/httpd.conf-dist中:  

# Limit on total number of servers running, i.e., limit on the number  
# of clients who can simultaneously connect --- if this limit is ever  
# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.  
# It is intended mainly as a brake to keep a runaway server from taking  
# Unix with it as it spirals down...  

MaxClients 150  

在增大这个值之前,要检查一下你的系统,RAM 扩展,并调整kernel。  

M. Teterin"  写到:  

对kernel和经常使用的应用程序进行优化非常有用。在AMD-133(486类CPU)上重新编译FreeBSD kernel时加上  
      -m486 -fexpensive-optimizations -fomit-frame-pointer -O2  
可以减少 "unable" errors。  

 

|
FreeBSD下,可以重编内核,参数我不太记得了

|
学习

|
增加用户数目

|

up

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 虚拟机VMware下的linux如何增大文件系统空间?
  • 增大Oracle REDO LOG的SIZE
  • 我的linux程序在运行的时候占用内存不断增大是为什么?
  • vmware增大虚拟硬盘:the diskname or other arguement is missing


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3