![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
From sysdef-command: |
#3
| |||
| |||
|
|
In additon: The solaris host is configured to hold 65536 open files per process. From sysdef-command: * * Process Resource Limit Tunables (Current:Maximum) * 0x0000000000000100:0x0000000000010000 * file descriptors * I understand that this value is the absolute kernel-limit for a shell with all child-processes. We did a pfiles command on all oninit-processes and count more than 63000 open file descriptores. They can also be found in /proc/oninit-PID/fd. Most of the file descriptors describe (as I assume) tcp connections: * 21: S_IFCHR mode:0000 dev:305,0 ino:52962 uid:0 gid:0 rdev:146,718 * * * O_RDWR|O_NDELAY * * * /devices/pseudo/tcp6@0:tcp6 * 22: S_IFCHR mode:0000 dev:305,0 ino:21689 uid:0 gid:0 rdev:146,2440 * * * O_RDWR|O_NDELAY * * * /devices/pseudo/tcp6@0:tcp6 Most of the oninit processes (about 30) hold more than 3000 of those descriptors. *Do they count when reaching the limit of open files? It's not very likely because user informix starts the server with an ulimit of 256 files and this limit is by far exceeded. But who knows...? From: informix-list-boun... (AT) iiug (DOT) org [mailto:informix-list-boun... (AT) iiug (DOT) org] On Behalf Of Habichtsberg, Reinhard Sent: Wednesday, May 11, 2011 1:04 PM To: informix-l... (AT) iiug (DOT) org Subject: Too many open files - Isam error 104 Hi all, we have an Informix-4ge program that stops with error 104 "too many open files" while trying to open a violation table. Same program has run for years without this error. The code has not been changed. The schema of two tables has changed: stop violations table for xxx_neu; drop table xxx_neu_vio; drop table xxx_neu_dia; alter table xxx_neu add (verarb_status SMALLINT); start violations table for xxx_neu; set indexes xxx_n_1 filtering; alter table yyy_neu add (anmelde_grund CHAR(2), * * * * * * * * * * * * * * abmelde_grund CHAR(2), * * * * * * * * * * * * * * svs67 CHAR(2)); Those columns are not in use of the program yet. Parts of the program runs on new application server (Solaris 10 Zone). May be *the pogram runs faster than before. The Informix Server is 11.50FC7W3. OS is Solaris 10. We checked some limits on the appservers and the database server host. Ulimit is set to 256 for the appusers and for user informix before starting the databaseserver. We couldn't see many open files on the appserver. The informix databaseserver has more than 3000 concurrent sessions, most of them ontlitcp connections. What would you suggest? TIA, Reinhard. |
#4
| |||
| |||
|
|
Hello Reinhard, hmm not much anyway: -->>Most of the oninit processes (about 30) hold more than 3000 of those -->>descriptors. Do they count when reaching the limit of open files? It's -->>not very likely because user informix starts the server with an ulimit -->>of 256 files and this limit is by far exceeded. But who knows...? oninit is setuid root so it can increase it if i recall correctly. oninit procs share filedesc's afaik since threads can switch between vps. i would try setting sqlidebug eq export SQLIDEBUG=2:/tmp/somefile run the program and use sqliprint to dump the info. also you could try and use truss eq truss ./yourprogram > somefile 2>&1 maybe you find a hint which may case this. What does support say about this; i assume the repro is pretty easy?? See you Superboer On 11 mei, 15:04, "Habichtsberg, Reinhard" <RHabichtsb...@arz- emmendingen.de> wrote: In additon: The solaris host is configured to hold 65536 open files per process. From sysdef-command: * * Process Resource Limit Tunables (Current:Maximum) * 0x0000000000000100:0x0000000000010000 file descriptors * I understand that this value is the absolute kernel-limit for a shell with all child-processes. We did a pfiles command on all oninit-processes and count more than 63000 open file descriptores. They can also be found in /proc/oninit-PID/fd. Most of the file descriptors describe (as I assume) tcp connections: 21: S_IFCHR mode:0000 dev:305,0 ino:52962 uid:0 gid:0 rdev:146,718 O_RDWR|O_NDELAY /devices/pseudo/tcp6@0:tcp6 22: S_IFCHR mode:0000 dev:305,0 ino:21689 uid:0 gid:0 rdev:146,2440 O_RDWR|O_NDELAY /devices/pseudo/tcp6@0:tcp6 Most of the oninit processes (about 30) hold more than 3000 of those descriptors. Do they count when reaching the limit of open files? It's not very likely because user informix starts the server with an ulimit of 256 files and this limit is by far exceeded. But who knows...? From: informix-list-boun... (AT) iiug (DOT) org [mailto:informix-list-boun... (AT) iiug (DOT) org] On Behalf Of Habichtsberg, Reinhard Sent: Wednesday, May 11, 2011 1:04 PM To: informix-l... (AT) iiug (DOT) org Subject: Too many open files - Isam error 104 Hi all, we have an Informix-4ge program that stops with error 104 "too many open files" while trying to open a violation table. Same program has run for years without this error. The code has not been changed. The schema of two tables has changed: stop violations table for xxx_neu; drop table xxx_neu_vio; drop table xxx_neu_dia; alter table xxx_neu add (verarb_status SMALLINT); start violations table for xxx_neu; set indexes xxx_n_1 filtering; alter table yyy_neu add (anmelde_grund CHAR(2), abmelde_grund CHAR(2), svs67 CHAR(2)); Those columns are not in use of the program yet. Parts of the program runs on new application server (Solaris 10 Zone). May be the pogram runs faster than before. The Informix Server is 11.50FC7W3. OS is Solaris 10. We checked some limits on the appservers and the database server host. Ulimit is set to 256 for the appusers and for user informix before starting the databaseserver. We couldn't see many open files on the appserver. The informix databaseserver has more than 3000 concurrent sessions, most of them ontlitcp connections. What would you suggest? TIA, Reinhard. _______________________________________________ Informix-list mailing list Informix-list (AT) iiug (DOT) org http://www.iiug.org/mailman/listinfo/informix-list |
#5
| |||
| |||
|
#6
| |||
| |||
|
#7
| |||
| |||
|
|
Hi all, we have an Informix-4ge program that stops with error 104 "too many open files" while trying to open a violation table. Same program has run for years without this error. The code has not been changed. The schema of two tables has changed: stop violations table for xxx_neu; drop table xxx_neu_vio; drop table xxx_neu_dia; alter table xxx_neu add (verarb_status SMALLINT); start violations table for xxx_neu; set indexes xxx_n_1 filtering; alter table yyy_neu add (anmelde_grund CHAR(2), * * * * * * * * * * * * * * abmelde_grund CHAR(2), * * * * * * * * * * * * * * svs67 CHAR(2)); Those columns are not in use of the program yet. Parts of the program runs on new application server (Solaris 10 Zone). May be *the pogram runs faster than before. The Informix Server is 11.50FC7W3. OS is Solaris 10. We checked some limits on the appservers and the database server host. Ulimit is set to 256 for the appusers and for user informix before starting the databaseserver. We couldn't see many open files on the appserver. The informix databaseserver has more than 3000 concurrent sessions, most of them ontlitcp connections. What would you suggest? TIA, Reinhard. |
#8
| |||
| |||
|
|
-----Original Message----- From: informix-list-bounces (AT) iiug (DOT) org [mailto:informix-list-bounces (AT) iiug (DOT) org] On Behalf Of jrenaut Sent: Tuesday, May 17, 2011 2:57 PM To: informix-list (AT) iiug (DOT) org Subject: Re: Too many open files - Isam error 104 On May 11, 6:04*am, "Habichtsberg, Reinhard" <RHabichtsb...@arz- emmendingen.de> wrote: Hi all, we have an Informix-4ge program that stops with error 104 "too many open files" while trying to open a violation table. Same program has run for years without this error. The code has not been changed. The schema of two tables has changed: stop violations table for xxx_neu; drop table xxx_neu_vio; drop table xxx_neu_dia; alter table xxx_neu add (verarb_status SMALLINT); start violations table for xxx_neu; set indexes xxx_n_1 filtering; alter table yyy_neu add (anmelde_grund CHAR(2), * * * * * * * * * * * * * * abmelde_grund CHAR(2), * * * * * * * * * * * * * * svs67 CHAR(2)); Those columns are not in use of the program yet. Parts of the program runs on new application server (Solaris 10 Zone). May be *the pogram runs faster than before. The Informix Server is 11.50FC7W3. OS is Solaris 10. We checked some limits on the appservers and the database server host. Ulimit is set to 256 for the appusers and for user informix before starting the databaseserver. We couldn't see many open files on the appserver. The informix databaseserver has more than 3000 concurrent sessions, most of them ontlitcp connections. What would you suggest? TIA, Reinhard. I'd suggest contacting support. I seriously doubt the 104 error on the start violations would have anything to do with OS level file descriptors. The sqlexec thread on the server would not be opening anything additionally on that command, as a table in the server is not a unix file construct. All the oninit processes would already have all the chunks open, so the only OS file descriptors involved would be the ones for chunks or for the network connections. We have an internal concept of "file descriptor" that this is likely referring to that relates to tables, but the limit on the number of these should be very large, like 32k if I remember right. So I would think that that error is either getting generated when it shouldn't, or possibly an error is occurring but we're maybe reporting the wrong error or a misleading error. Jacques Renaut IBM Informix Advanced Support APD Team |
![]() |
| Thread Tools | |
| Display Modes | |
| |