最近,我的一个朋友在应用hpux时,发现服务端的监听端口在业务较繁忙的时候会出现无法再监听的情况,不知道大家有没有什么办法解决此问题!
希望斑竹能暂时将该页置顶!
代我的朋友向诸位先说声谢谢了!
hpux 回复于:2002-12-19 17:22:18 |
[quote][b]下面引用由[u]jazy[/u]在 [i]2002/12/19 12:05pm[/i] 发表的内容:[/b] 服务端的监听端口在业务较繁忙的时候会出现无法再监听的情况 [/quote] 这种情况应该是系统的BUG,打800问HP的工程师要最新的patch解决! (BTW,本贴固顶3天) |
jazy 回复于:2002-12-19 20:31:44 |
谢谢! |
jazy 回复于:2002-12-20 17:50:49 |
不知道哪位兄弟能提供hpux下端口连接数这方面的参数! 就是说一个端口最多能有所少个连接? 谢谢了! |
gadfly 回复于:2002-12-23 22:48:55 |
运行ulimit -a你就能看见最大打开文件数的限制了,如下:一般是60 nofiles(descriptors) 60 你可以用ulimit -n 200改到200,也可以用sam or kmtune改核心参数maxfiles_lim。 不过我怀疑。是连接最大数的限制么? 客户端报的错误是什么?能贴上来看看么? |
jazy 回复于:2002-12-25 20:22:38 |
$ulimit -a time(seconds) unlimited file(blocks) unlimited data(kbytes) 262144 stack(kbytes) 8192 memory(kbytes) unlimited coredump(blocks) 4194303 nofiles(descriptors) 120 I think it may be enough! Because the client didn't show any error message, So I don't know how to find the questions ! |
wdbj 回复于:2002-12-25 20:48:17 |
120太小了,一般在做应用服务器时可以用4096,甚至更大,6000 |
jazy 回复于:2002-12-25 22:15:09 |
那能不能察看当前系统已经打开的descriptors数呢? |
wdbj 回复于:2002-12-25 23:13:52 |
不行 我记得我做一个项目时,HP上装WEBLOGIC,两天一DOWN,当时NFILE是2048,改成6000就好了 |
gadfly 回复于:2002-12-26 00:39:07 |
netstat -a 可以看到占用了多少的连接。 不过改成几千也忒夸张了。 而且客户端的系统调用,一般出错都会设置errno的,不大可能什么错都不报亚? |
wdbj 回复于:2002-12-26 09:44:27 |
[这个贴子最后由wdbj在 2002/12/26 09:45am 编辑] 最大打开文件数到几千一点一不夸张,你去看ORACLE的A90351_02文档,是HP-UX11i上安装ORACLE9i的快速安装手册,是ORACLE官方资料,上面建议把该值改成六万以上,用于跑ORACLE数据库。 我做过很多类似的系统,最小也得要4096,没听说200就能够的。 另外,netstat -a看到的连接和nofile说指的descriptor完全是两回事 [quote][b]下面引用由[u]gadfly[/u]在 [i]2002/12/26 00:39am[/i] 发表的内容:[/b] netstat -a 可以看到占用了多少的连接。 不过改成几千也忒夸张了。 而且客户端的系统调用,一般出错都会设置errno的,不大可能什么错都不报亚? [/quote] |
gadfly 回复于:2002-12-26 13:32:08 |
[这个贴子最后由gadfly在 2002/12/26 02:02pm 编辑] 我也做过一些应用系统(不是只数据库这种系统软件),没看见过要改nfiles的呀。适用于不同的情况而已。 |
wdbj 回复于:2002-12-26 14:04:26 |
一般现在比较常用的例如ORACLE,WEBSPHERE,WEBLOGIC,ORACLE APPLICATION SERVER等等应用都是必须修改包括NFILE,MAXFILES等再内的很多内核参数的,否则极容易出现问题。 如果是企业级应用,nofile的值是必须改的,至少要2048,这是最小限度了。(nofile和NFILE不是一回事,它实际是内核MAXFILES的值) |
wdbj 回复于:2002-12-26 14:06:44 |
http://forums.itrc.hp.com/cm/QuestionAnswer/1,,0x356d402f24d5d61190050090279cd0f9,00.html 这个论坛可以给大家一个参考 |
gadfly 回复于:2002-12-26 14:21:49 |
但是我想楼主说的是应用软件,并不是oracle或者websphere这样的系统软件.一般的应用用不着这么多的文件描述符 |
gadfly 回复于:2002-12-26 14:24:50 |
nfile system-wide open-files limit |
gadfly 回复于:2002-12-26 14:27:09 |
有两种方式查看process的打开进程数: 1.lsof 2.用glance plus Glance->Reports->Process List->Process Open Files. |
wdbj 回复于:2002-12-26 14:28:21 |
NFILE一般要调到60000,是系统所允许打开的最大文件数 当然具体要根据应用来做,如果就跑个APACHE,静态网页,那默认值几足够了,我只的是企业级应用 |
gadfly 回复于:2002-12-26 14:33:15 |
[quote][b]下面引用由[u]wdbj[/u]在 [i]2002/12/26 09:44am[/i] 发表的内容:[/b] 另外,netstat -a看到的连接和nofile说指的descriptor完全是两回事 [/quote] 我也没说是一回事亚, 如果是网络服务的话,我想用netstat至少能看到一个打开文件的量级。 因为每accept返回正确,就占用一个描述符。 至少是一种看量级的快速方式 |
gadfly 回复于:2002-12-26 14:37:07 |
hp上的nofiles确实太小了:缺省为60. linux上的缺省值为1024。 一般的网络服务,1024对付企业级的应用足够了。 |
wdbj 回复于:2002-12-26 14:39:33 |
1024很多情况都不行的,我过去做的银河证券,2048都老DOWN机呢,一直调的很高,才好了 |
gadfly 回复于:2002-12-26 14:42:43 |
刚才我察看了一下accept的man, 服务端不响应是有可能的。 我们可以看到ERROS section中的accept(2), 有两种错误可能: [ENFILE] The system's table of open files is full and no more accept() calls can be processed at this time. [ENOBUFS] No buffer space is available. The accept() cannot complete. The queued socket connect request is aborted. 一个就是全系统的最多大开的文件数NFILE的限制。 另外一个就是单个进程打开的文件的限制。即ENBUFS错误。 因此最好的办法是NFILE和NOFILES都调大试试看 |
wdbj 回复于:2002-12-26 14:45:27 |
没错,把NPROC调到4096,然后把NFILES调到15*NPROC+2048,把MAXFILES也就是NOFILE调到6000,肯定再不会有问题,需要RESTART |
gadfly 回复于:2002-12-26 14:46:08 |
[quote][b]下面引用由[u]wdbj[/u]在 [i]2002/12/26 02:39pm[/i] 发表的内容:[/b] 1024很多情况都不行的,我过去做的银河证券,2048都老DOWN机呢,一直调的很高,才好了 [/quote] 呵呵,不知道峰值并发度有多高? 单进程的限制引起的么? 如果是单进程限制引起的,我想最多也只是无法响应请求, 整个系统的最大数才有可能down机亚? |
wdbj 回复于:2002-12-26 14:47:44 |
不是系统DOWN,而是应用服务DOWN,系统是不会轻易DOWN掉的,当时用的是WEBLOGIC,总是DOWN掉 |
gadfly 回复于:2002-12-26 14:52:37 |
[这个贴子最后由gadfly在 2002/12/26 02:54pm 编辑] 哦,那是有可能。如果有中间件,数据库这种大型的系统软件,确实要开到很大,但是网络"应用"程序本身一般是不会有问题的,像smtp, pop3或者银行的应用层的软件. |
jazy 回复于:2002-12-26 16:59:00 |
[quote][b]下面引用由[u]gadfly[/u]在 [i]2002/12/26 02:42pm[/i] 发表的内容:[/b] 刚才我察看了一下accept的man, 服务端不响应是有可能的。 我们可以看到ERROS section中的accept(2), 有两种错误可能: The system's table of open files is full and no ... [/quote] 谢谢!谢谢楼上两位兄弟的精彩讨论! 我觉得很有道理,我会将你们的意见转告给我的朋友的! 还是咋hpux版好,有这么好的讨论问题的氛围! 可惜,今天去开会给错过了! |
gadfly 回复于:2002-12-26 17:09:47 |
呵呵,与各位的讨论长见识啊。 以前一些模糊的细节都搞清楚了. |
wdbj 回复于:2002-12-26 17:18:49 |
大家共同进步了,呵呵 |
hpux 回复于:2002-12-27 09:20:09 |
才看到啊~~~不错设为精华! |
段誉 回复于:2003-04-30 00:57:39 |
看过这篇帖子,长进不少。
另外请教一个问题:哪位老大了解domino for hp的,我这里用domino自带的pop3服务,经常莫名其妙的就停掉了。客户端连接的时候,就出现错误,telnet的结果就是connection refused。 只好重新启动机器才行,重新启动domino server不好用,按照在我之前维护的人(已经走了)的说法,是domino系统的bug,没办法解决的。 我的环境: HP K370,784mb memory,8gb system disk,50gb raid(目前使用,两个数据卷),hp-ux 11,domino 5.0.7a。 多谢指点。 |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/