informix 9.21 limitaciones?

pregunta !!, la version 9.21 tiene limitaciones en cuanto a memoria?, cuanto es lo maximo que se le puede asignar.?
muchas gracias!!

Que yo sepa no tiene limitaciones … o son suficientementa altas como para no preocuparse. Por que la pregunta? Que es lo que estás por o querés hacer? Cual es el problema?

Saludos

Gustavo

por que estoy tratando de agrandar el tamaño del buffer y a chicar SHMVIRTSIZE , entiendo que se puede asignar el 75 % para un mejor perfomance en una base oltp

y me arroja

shmdt: errno = 22
13:39:41 mt_shm_init: can’t create resident segment

13:41:00 Informix Dynamic Server 2000 Started.
13:41:00 shmat: [ENOMEM][12]: out of available data space, check system MAXMEM

al parecer es por una limitacion del linux centos 4 32 bit. por eso preguntaba.
estoy tratando de hacer que tome los 8 gb, es una virtual y solamente me usa 6 gb esto lo veo desde el centos comando free o top.

Informix Dynamic Server 2000 Version 9.21.UC3 – On-Line – Up 17:37:12 – 2759300 Kbytes

Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
1734177 1910086 401392365 99.57 35804 215664 525462 93.19

isamtot open start read write rewrite delete commit rollbk
330794176 1514217 13220343 283270204 393992 17236 20342 57939 4

gp_read gp_write gp_rewrt gp_del gp_alloc gp_free gp_curs
0 0 0 0 0 0 0

ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
0 0 0 1438.67 84.47 83 212

bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
89855 0 449936348 0 0 4 29876 75336

ixda-RA idx-RA da-RA RA-pgsused lchwaits
44077 10469 1513382 1567797 62706

los valores de cache entiendo que tambien estan bien.

El sistema operativo es de 32bits?
Por lo que indica en http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.adref.doc/adref160.htm (es de ifx 10) el máximo posible son 2Gb.

Hola,

A veces hay parametros del sistema operativo (SHMSEG, SHMMAX, etc) que restringen la cantidad y tamaño maximo de los segmentos de shared memory. Igual en linux creo que esos parametros son dinamicos, no como antes que habia que tunearlos.

Con un onstat -g seg podes ver el tamaño de cada area de la shared memory de Informix

$ onstat -g seg

IBM Informix Dynamic Server Version 10.00.UC3 – On-Line – Up 00:00:16 – 1821120 Kbytes

Segment Summary:
id key addr size ovhd class blkused blkfree
8617989 1388595201 44000000 21073920 215476 R 5141 4
8650759 1388595202 45419000 1843200000 56904 V 3490 446510
8683528 1388595203 b31e9000 552960 672 M 135 0
Total: - - 1864826880 - - 8766 446514

Podrias hacer algunos intentos con diferentes valores de BUFFERS para averiguar de cual es el tamaño maximo que podes allocar ?. Los buffers se guardan en el area RESIDENTE (aparece con una R en la columna class)

Hay un articulo aqui para hacer que el segmento sea mas grande, cambiando el SHMBASE, pero no se si aplica a tu caso.

http://www-01.ibm.com/support/docview.wss?uid=swg21215798

saludos
Ignacio

Ale:

Lo que tiene tope es el valor de la variable SHMVIRTSIZE, que como dice en tu link es el tamaño del segmento inicial de shared-memory, pero luego con la variable SHMADD se le indica el tamaño de cada segmento adicional. Aparte indica el algoritmo que hay que usar para determinar el valor de la variable SHMVIRTSIZE.

“SHMVIRTSIZE specifies the initial size of a virtual shared-memory segment. Use the following algorithm to determine the size of the virtual portion of shared memory”

Y al final recomienda: " It is recommended that you initially create a virtual portion of shared memory of a size that is more than sufficient for your daily processing, if possible."

Todo esto no quiere decir que el motor no pueda usar los 6 u 8 GB de RAM que tiene disponibles Diego.

Por lo poco que yo sé, conviene asignarle a esa variable la mayor cantidad posible de la memoria disponible, obviamente con los limites que fija esa nota. Y en la Web hay varios articulos sobre como optimizar el motor y que indican como dimensionar esa variable. Aparte creo que en la Extranet hay publicado algunos tips by Damián Solalinde.

Saludos

Gustavo

si , se instalo en un centos de 32 bits. no me acuerdo si la version que ustedes repartieron era compatible con 64 bit. pero por algun motivo se instalo asi.

Informix Dynamic Server 2000 Version 9.21.UC3 – On-Line – Up 1 days 14:47:22 – 2759300 Kbytes

Segment Summary:
id key addr size ovhd class blkused blkfree
3014656 1381386241 10000000 2288652288 284616 R* 558740 13
3080194 1381386243 986a1000 536870912 16984 V 13701 117371
3112963 1381386244 b86a1000 15937536 1088 M 3867 24
3145732 1381386245 b95d4000 15937536 1088 M 3860 31
3178501 1381386246 ba507000 15937536 1088 M 3860 31
3211270 1381386247 bb43a000 15937536 1088 M 3860 31
3244039 1381386248 bc36d000 15937536 1088 M 3860 31
3276808 1381386249 bd2a0000 15937536 1088 M 3860 31
3309577 1381386250 be1d3000 15937536 1088 M 3860 31
Total: - - 2937085952 - - 599468 117594

(* segment locked in memory)

como dice gustavo. el SHMVIRTSIZE no lo quiero aumentar. lo que quiero aumentar son los buffers. entiendo que tendrias mejor rendimiento para bases OLTP , seria muchas consultas chicas y muchos usuarios en simultaneo ( inscripciones ) corrijanme si me equivoco.

actualmente tengo SHMVIRTSIZE 524288 ( 512 megas ) y BUFFERS 1048567 ( 1gb ) lo maximo que puede aumentar.

SHMADD 32768 ( 32 megas ) no se si es poco esto?

el link que me diste ignacio tambien lo agregue al onconfig lo del shmbase y tampoco me dio resultado.

estos son los valores que tengo en el /etc/sysctl.conf

kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2209914880
kernel.shmmni = 4096
fs.file-max = 262140
vm.vfs_cache_pressure = 50
vm.min_free_kbytes = 65536

gustavo tendiras a mano ese link? por que busque y encontre uno ( no se si es al que haces referencia ), pero no funcionaba el link.

alguna sugerencia? o paso a centos 64 - debian etch 64 bit? a ver que sucede?

pd: se podria armar un post para todos y ver la configuracion de cada facultades ( windows linux hardware virtualizado o no pdo o odbc etc etc) y las experiencias de cada uno que les parece?

Hola

En tu maquina veo que el segmento residente tiene 2Gb, casi todo ocupado por los 1048567 BUFFERS (cada BUFFER en linux son 2K). para verificar podes fijarte en la salida del onstat -g seg que dice que la logitud del segmento Residente es de 2Gb
Segment Summary:
id key addr size ovhd class blkused blkfree
3014656 1381386241 10000000 2288652288 284616 R* 558740 13
Me parece dificil que te quedes corto con 1 millon de BUFFERS, pero para incrementarlo yo veo lo siguientes:

1-Si tal como dijo Ale, por el hecho de ser 32 bits el linux, no se puede crear un segmento mayor de 2Gb, no hay solucion. Yo no estoy 100% seguro de que sea asi, pero seria bastante razonable que una arquitectura de 32 bits, solo pueda direccionar segmentos de 2Gb

2- Por otro lado, tenes algunos parametros del kernel, que justamente esta configurados en el mismo limite de 2Gb, ellos son:
kernel.shmall = 2097152
kernel.shmmax = 2209914880
kernel.shmmni = 4096

shmmax : Es el tamaño maximo INDIVIDUAL de cada segmento de shared memory y esta expresado en bytes (o sea 2.05 Gb)
sshmall: Es el tamaño maximo de TODOS los segmentos de shared, OJO esta en paginas de shmni bytes (o sea esta justo en 8Gb=2097152 * 4096)

En resumen si podes modificar el shmmax del kernel a 3000000000 bytes (creo que luego hay que rebootear) y fijate si podes incrementar los BUFFERS en 200.000 unidades (serian 400Mb), como para probar.

saludos
Ignacio
PD:
Estos son los parametros del kernel de linux que impactan en el tamaño de shared memory

SHMMAX is the maximum size of a single shared memory segment set in “bytes”.
silicon:~ # cat /proc/sys/kernel/shmmax
536870912

SHMALL is the total size of Shared Memory Segments System wide set in “pages”.
silicon:~ # cat /proc/sys/kernel/shmall
1415577

Este ultimo esta expresado en paginas de tamañi shmmni

Diego:

Este es uno de los links, pero había otro mucho mejor que no lo encuentro ahora.

http://publib.boulder.ibm.com/tividd/td/tec/SC32-1233-00/es_ES/HTML/ecoimst94.htm

Saludos

Gustavo

Diego:

Ahora si encontré el que yo me refería. Es un muy buen artículo. http://www.ibm.com/developerworks/data/zones/informix/library/techarticle/0303fan/0303fan.html

También aqui hay un muy viejo documento hecho para el SIU creo, del que también se pueda sacar algo:
http://www.guarani.unt.edu.ar/wp-content/uploads/2010/09/INFORMIX_ADMINISTRACION.pdf

Quizás tambien puedas estudiar algo piola aquí (este yo no lo vi en detalle):
http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=%2Fcom.ibm.perf.doc%2Fperf.htm

Este me parece que es el mismo primer artículo pero quizás en un formato más piola para imprimir:
http://www.informix.com.ua/articles/monitor/monitor.htm

Finalmente, este también parece ser piola:
http://informix-zone.com/files/whitepapers/perf-tuning-tips.pdf

Bueno, tenés para entretenerte. Si sacás alguna buena conclusión, comentala y si llegas a hacer un resumen de todo para todos, muchísimo mejor!!

Saludos

Gustavo

gracias gustavo por los link
ignacio , estoy instalando un centos 64 y en el shmmax puse para 8gb y lo tomo perfecto. veremos como sigue el asunto.

otra cosa que estuve viendo es el Informix MaxConnect, me parece muy interesante.

la pregunta es alguien probo esto? alguien lo tiene instalado? ( hay que pagarlo por lo que vi ).

también estoy evaluando la comprar de la lic , para no tener un motor tan viejo y tener las mejoras del nuevo motor. supuestamente no tendría que tener problemas con el traspaso de las bases ?

gracias !!.

Hola

El maxconnect, que yo sepa no lo usa nadie.

Con respecto a usar la ultima version, el pasaje de datos de un motor 9.21 a otro 12, u 11.x es muy sencillo,

la parte mas compleja esta relacionada con los clientes Informix ya que no son los mismos, que se usaban con el power builder y la 9.21. Pero hay muchas universidades que ya pasaron por este proceso de migracion y seguramente pueden aportar algo.

saludos
Ignacio

hola ignacio, si lo que estoy haciendo es probar la version 12, ya migre los datos de un motor a otro. ( tuve que modificar el dbexport ) pero funciono perfecto.
como estamos viendo de comprar la licencia, necesito estar 100 % seguro que funciona ja.

si , ahora estoy con ese problema con el power builder, ( abri un tema sobre eso )si no me equivoco creo que baje un sdk de los mas nuevos y no funciono, vos me decis que baje otra version mas vieja ? ( el pb no me funciono. conectar a la base y consultar funciona bien ).

muchas gracias!!.