环境配置及症状:

AS4U8+IDS9.21.UC2

$ONCONFIG

ALARMPROGRAM    /home/informix/etc/log_full.sh # Alarm program path

bar_act.log

 2011-10-14 13:48:40 8063  8061 /home/informix/bin/onbar_d -b -l
 2011-10-14 13:48:40 8063  8061 Begin backup logical log 311991.
 2011-10-14 13:48:40 8063  8061 Successfully connected to Storage Manager.
 2011-10-14 13:48:40 8063  8061 ASSERT: file bar_xbsa.ecbarSendData() line 1331 - contact product support
 2011-10-14 13:48:40 8063  8061 See also: /home/informix/tmp/core

online.log

13:48:39  Logical Log 311993 Complete.
13:48:40  Logical Log 311991 - Backup Started
13:48:40  Logical Log 311991 - Backup Aborted
          Aborted by client.
13:48:40  Process exited with return code 139: /bin/sh /bin/sh -c /home/informix/etc/log_full.sh 2 23 "Logical Log 311993 Complete." "Logical Log 311993 Complete."

系统逻辑日志满时,自动触发/home/informix/etc/log_full.sh 进行逻辑日志备份,bar_act.log及online.log日志信息如上(手工进行逻辑日志备份正常)

原因:

与参数SHMVIRTSIZE     (# initial virtual shared memory segment size)有关

解决办法:

将SHMVIRTSIZE值设置小一点,我的实例下,将原来参数调整为32000,如果调整后仍然有问题,试着重启一下ISM(ism_shutdown->ism_startup)

SHMVIRTSIZE configuration parameter

Use the SHMVIRTSIZE configuration parameter to specify the initial size of a virtual shared-memory segment.

onconfig.std value
32656
if not present
  • If SHMADD is present: SHMADD
  • If SHMADD is not present: 8192
units
Kilobytes
range of values
32-bit platforms: Positive integer with a maximum value of 2 gigabytes

64-bit platforms: Positive integer with a maximum value of 4 terabytes

The maximum value might be less on some platforms due to operating-system limitations. For the actual maximum value for your UNIX platform, see the machine notes.

takes effect
When the database server is shut down and restarted
utilities
onstat -g seg (see onstat -g seg command: Print shared memory segment statistics)
refer to
  • Virtual portion of shared memory, in the shared-memory chapter of the IBM Informix Administrator's Guide
  • Chapter on configuration effects on memory utilization, in your IBM Informix Performance Guide

To determine the appropriate value for the SHMVIRTSIZE configuration parameter, use the following algorithm to determine the size of the virtual portion of shared memory:

shmvirtsize = fixed overhead + ((stack size + heap) * number of users)
ComponentValue to use
Fixed overheadThis includes the size of the AIO vectors + sort memory + dbspace backup buffers + dictionary size + size of stored-procedure cache + histogram pool + other pools, and other overhead.
To obtain an estimate of the fixed overhead, start the database server and see how many additional memory segments are allocated, if any. The number of users that you have on the system when you start the server, impacts the allocation of memory segments. When you start the server:
  • If the number of users is typical for your environment, then add the size of the memory segments to the current value for the SHMVIRTSIZE configuration parameter and restart the server.
  • If the number of users is far less than what is typical for your environment, you must calculate the appropriate overhead value to use for the memory segments. You can determine how many memory segments each user will consume by dividing the number of additional memory segments allocated when you started the server by the number of users that you had on the server at that time. Multiply the value for the memory segments for each user by the number of users that you will typically have on the system. Add this calculated value for the memory segments to the current value for SHMVIRTSIZE configuration parameter and restart the server.
Stack sizeOn 32-bit systems, use 32 kilobytes for the stack size. Typically on 64-bit systems, you use 64 kilobytes for the stack size. However, some 64-bit systems use a different value. For more information see the STACKSIZE configuration parameter.
HeapUse 30 kilobytes per user.
Number of usersUse the maximum number of concurrent user sessions that you anticipate on the server.

If possible, create a virtual portion of shared memory of a size that is more than you require for your daily processing.

Use the onstat -g seg command to determine peak usage and lower the value of the SHMVIRTSIZE configuration parameter accordingly.

Definition(SAP)

The

SHMVIRTSIZEparameter in the Informix ONCONFIGfile specifies how much shared memory in KB to use for the "virtual portion" at system start. Informix stores various objects here, including the dictionary cache.

The most important factor affecting the size of virtual portion is the session pools. If a large number of users are very active, Informix adds memory to this area. This dynamic allocation of shared memory can affect performance considerably, so you should allocate a large initial segment to avoid dynamic increases.

Use

For up-to-date recommendations, see SAP Note 38307.

Adjust the parameters

SHMVIRTSIZEand SHMADDto the actual storage requirements of the system for the following reasons:main screen of the database monitor to check for Virtual Portion in the Shared Memory display, which shows the value of SHMVIRTSIZE. Or you can execute the command onstat -g seg(as the user <sid>adm/informixor with transaction ST04), as in the following example:

Segment Summary:

(resident segments are not locked)

id

key

addr

size

ovhd

class

blkused

blkfree

778

1381386243

c0651000

679936

616

M

80

3

776

1381386241

c072d000

46792704

1584

R

5708

4

777

1381386242

c33cd000

8192000

732

V

1000

0

2331

1381386244

d5fea000

8388608

732

V

1020

4

2844

1381386245

d67ea000

8388608

732

V

536

488

Total

-

-

72441856

-

-

8344

499

SHMVIRTSIZEto a value which can be determined as follows in a production system:

  • The dynamic allocation of new shared memory segments is a time-consuming operation, which should be avoided in online operation for reasons of performance.
  • Various operating systems have a limit on the available shared memory segments.
  • For different operating systems, there are significant performance losses if more than two shared memory segments are used.

You can use the

Set the parameter

Take the sum of the size of the individual virtual shared memory segments (that is, the rows with the value

This example of how to set

Vin the column class) and set the parameter SHMVIRTSIZEto a value that is larger than the determined value. We recommend you to add 10% to the determined value.  SHMVIRTSIZEis taken from the onstat –g segexample above:

SHMVIRTSIZE

= 27,000 KB

= ((8192000 + 8388608 + 8388608) / 1024) x 1.1

此文章由 flyinweb 于 2011-10-15 08:55:47 编辑

本日志由 flyinweb 于 2011-10-14 14:11:17 发表,目前已经被浏览 579 次,评论 0 次;

作者添加了以下标签: Process exited with return code 139

引用通告:http://www.517sou.net/Article/700/Trackback.ashx

评论订阅:http://www.517sou.net/Article/700/Feeds.ashx

评论列表

    暂时没有评论
(必填)
(必填,不会被公开)