[Info-vax] Large mailboxes

Jan-Erik Söderholm jan-erik.soderholm at telia.com
Mon Nov 30 12:42:55 EST 2020


Den 2020-11-30 kl. 18:25, skrev Marc Van Dyck:
> After serious thinking Marc Van Dyck wrote :
> 
>> Yes I will do that next monday and report the results here.
> 
> OK, as promised, I tested. I does not work.
> 
> I ran the procedure below. I tested it interactively with a small
> amount of messages, and then submitted it in batch, so as to have a log
> file, with 1.000.000 messages.
> 
> $       SET NOVERIFY
> $       total = P1
> $       disp_mem = P2
> $       disp_count = P3
> $       MBX /CREATE /MES = 100 /POSITIONS = 'total' /PERM mvd$test1
> $       count = 0
> $       text = "This is message number "
> $       WRITE SYS$OUTPUT "Start Writing at ''F$TIME()'..."
> $       SHOW MEMORY /POOL
> $snd:
> $       count = count + 1
> $       IF ((count/disp_count)*disp_count) .EQ. count THEN WRITE SYS$OUTPUT 
> "''F$TIME()' - messages sent : ''count'"
> $       IF ((count/disp_mem)*disp_mem) .EQ. count THEN SHOW MEMORY /POOL
> $       message = "''text'''count'"
> $       MBX /SEND /SYMBOL = message /NOLOG mvd$test1
> $       IF count .LT. total THEN GOTO snd
> $       WRITE SYS$OUTPUT "Finished writing ''total' messages"
> $       count = 0
> $       WRITE SYS$OUTPUT "Start Reading at ''F$TIME()'..."
> $rec:
> $       count = count + 1
> $       MBX /RECEIVE /END = done mvd$test1 message
> $       IF F$INTEGER (message - text) .NE. count THEN GOTO ERROR
> $       IF ((count/disp_count)*disp_count) .EQ. count THEN WRITE SYS$OUTPUT 
> "''F$TIME()' - messages read : ''count'"
> $       IF ((count/disp_mem)*disp_mem) .EQ. count THEN SHOW MEMORY /POOL
> $       GOTO rec
> $error:
> $       WRITE SYS$OUTPUT "Error encountered at ''F$TIME()'"
> $       WRITE SYS$OUTPUT "Last message read = ''message' - counter = ''count'"
> $done:
> $       SHOW MEMORY /POOL
> $       WRITE SYS$OUTPUT "Finished reading ''total' messages at ''F$TIME()'"
> $       WRITE SYS$OUTPUT "Don't forget to execute MBX /DELETE mvd$test1"
> $       EXIT
> 
> I won’t post the whole log file here, it’s too large. But here the
> begin and the end of the writing phase. The system happily accepts the
> 1.000.000 messages, and one can see the free nonpaged dynamic memory
> decrease while the messages are sent:
> 
> Start Writing at 30-NOV-2020 16:23:06.06...
>               System Memory Resources on 30-NOV-2020 16:23
> ␍␊Dynamic Memory Usage:              Total        Free      In Use
>   Nonpaged Dynamic Memory (MB)    390.62      356.07       34.54
>   Bus Addressable Memory  (MB)      1.49        1.35        0.13
>   Paged Dynamic Memory    (MB)    390.62      256.98      133.63
>   Lock Manager Dyn Memory (MB)    177.03      109.20       67.82
> 30-NOV-2020 16:23:09.95 - messages sent : 1000
> 30-NOV-2020 16:23:13.44 - messages sent : 2000
> 30-NOV-2020 16:23:17.10 - messages sent : 3000
> 30-NOV-2020 16:23:20.49 - messages sent : 4000
> 30-NOV-2020 16:23:24.08 - messages sent : 5000
> 30-NOV-2020 16:23:27.61 - messages sent : 6000
> 30-NOV-2020 16:23:31.24 - messages sent : 7000
> 30-NOV-2020 16:23:34.94 - messages sent : 8000
> 30-NOV-2020 16:23:38.65 - messages sent : 9000
> 30-NOV-2020 16:23:42.18 - messages sent : 10000
>              System Memory Resources on 30-NOV-2020 16:23
> ␍␊Dynamic Memory Usage:              Total        Free      In Use
>   Nonpaged Dynamic Memory (MB)    390.62      354.85       35.76
>   Bus Addressable Memory  (MB)      1.49        1.35        0.13
>   Paged Dynamic Memory    (MB)    390.62      256.98      133.63
>   Lock Manager Dyn Memory (MB)    177.03      109.21       67.81
> 30-NOV-2020 16:23:46.24 - messages sent : 11000
> 
>> 
> 30-NOV-2020 17:26:18.05 - messages sent : 990000
>               System Memory Resources on 30-NOV-2020 17:26
> 
> Dynamic Memory Usage:              Total        Free      In Use
>   Nonpaged Dynamic Memory (MB)    390.62      235.22      155.39
>   Bus Addressable Memory  (MB)      1.49        1.35        0.13
>   Paged Dynamic Memory    (MB)    390.62      256.98      133.63
>   Lock Manager Dyn Memory (MB)    177.03      110.46       66.56
> 30-NOV-2020 17:26:22.07 - messages sent : 991000
> 30-NOV-2020 17:26:25.99 - messages sent : 992000
> 30-NOV-2020 17:26:29.73 - messages sent : 993000
> 30-NOV-2020 17:26:34.16 - messages sent : 994000
> 30-NOV-2020 17:26:38.16 - messages sent : 995000
> 30-NOV-2020 17:26:41.70 - messages sent : 996000
> 30-NOV-2020 17:26:45.81 - messages sent : 997000
> 30-NOV-2020 17:26:50.05 - messages sent : 998000
> 30-NOV-2020 17:26:54.14 - messages sent : 999000
> 30-NOV-2020 17:26:57.83 - messages sent : 1000000
>               System Memory Resources on 30-NOV-2020 17:26
> 
> Dynamic Memory Usage:              Total        Free      In Use
>   Nonpaged Dynamic Memory (MB)    390.62      234.00      156.62
>   Bus Addressable Memory  (MB)      1.49        1.35        0.13
>   Paged Dynamic Memory    (MB)    390.62      256.98      133.63
>   Lock Manager Dyn Memory (MB)    177.03      110.36       66.66
> Finished writing 1000000 messages
> 
> But, when messages are read, an end of file marker is received
> after some 16.000 messages, probably the first time the message count
> goes through zero:
> 
> Start Reading at 30-NOV-2020 17:26:57.85...
> 30-NOV-2020 17:27:01.89 - messages read : 1000
> 30-NOV-2020 17:27:06.46 - messages read : 2000
> 30-NOV-2020 17:27:10.24 - messages read : 3000
> 30-NOV-2020 17:27:13.98 - messages read : 4000
> 30-NOV-2020 17:27:18.13 - messages read : 5000
> 30-NOV-2020 17:27:21.89 - messages read : 6000
> 30-NOV-2020 17:27:26.35 - messages read : 7000
> 30-NOV-2020 17:27:30.68 - messages read : 8000
> 30-NOV-2020 17:27:34.73 - messages read : 9000
> 30-NOV-2020 17:27:39.10 - messages read : 10000
>               System Memory Resources on 30-NOV-2020 17:27
> 
> Dynamic Memory Usage:              Total        Free      In Use
>   Nonpaged Dynamic Memory (MB)    390.62      235.18      155.43
>   Bus Addressable Memory  (MB)      1.49        1.35        0.13
>   Paged Dynamic Memory    (MB)    390.62      256.98      133.63
>   Lock Manager Dyn Memory (MB)    177.03      109.03       68.00
> 30-NOV-2020 17:27:42.79 - messages read : 11000
> 30-NOV-2020 17:27:46.92 - messages read : 12000
> 30-NOV-2020 17:27:50.76 - messages read : 13000
> 30-NOV-2020 17:27:54.35 - messages read : 14000
> 30-NOV-2020 17:27:58.51 - messages read : 15000
> 30-NOV-2020 17:28:02.39 - messages read : 16000
>               System Memory Resources on 30-NOV-2020 17:28
> 
> Dynamic Memory Usage:              Total        Free      In Use
>   Nonpaged Dynamic Memory (MB)    390.62      236.03      154.58
>   Bus Addressable Memory  (MB)      1.49        1.35        0.13
>   Paged Dynamic Memory    (MB)    390.62      256.98      133.63
>   Lock Manager Dyn Memory (MB)    177.03      109.02       68.00
> Finished reading 1000000 messages at 30-NOV-2020 17:28:06.05
> Don't forget to execute MBX /DELETE mvd$test1
>   VANDYCK      job terminated at 30-NOV-2020 17:28
> 
> The mailbox is indeed indicated as empty, but one can see that its
> deletion still frees up a lot of nonpaged dynamic memory, a clear
> indication that the mailbox was not really empty :
> 
> ROCK> mbx/info mvd$test1
> Current status of mailbox named MVD$TEST1 :
> 
> Physical name       : _MBA459:
> Owner UIC           : [000001,000034]
> UIC Protection mask : (S:RWPL,O:RWPL,G:RWPL,W:RWPL)
> Message size        :   100
> Processes attached  :     0
> Pending messages    :     0
> 
> ROCK>
> ROCK> show mem/pool
>               System Memory Resources on 30-NOV-2020 17:35
> 
> Dynamic Memory Usage:              Total        Free      In Use
>   Nonpaged Dynamic Memory (MB)    390.62      236.06      154.56
>   Bus Addressable Memory  (MB)      1.49        1.35        0.13
>   Paged Dynamic Memory    (MB)    390.62      256.99      133.63
>   Lock Manager Dyn Memory (MB)    177.03      109.12       67.90
> ROCK> mbx/att mvd$test1
> ROCK> mbx/del mvd$test1
> ROCK> show mem/pool
>               System Memory Resources on 30-NOV-2020 17:35
> 
> Dynamic Memory Usage:              Total        Free      In Use
>   Nonpaged Dynamic Memory (MB)    390.62      356.05       34.57
>   Bus Addressable Memory  (MB)      1.49        1.35        0.13
>   Paged Dynamic Memory    (MB)    390.62      256.99      133.63
>   Lock Manager Dyn Memory (MB)    177.03      109.12       67.90
> 
> So it is clear that sending more than 64k messages to a mailbox cannot
> be trusted and should therefore be avoided. I think it should be stated
> explicitly in the documentation.

As long as sopmeone reads them, it should be OK... :-)




More information about the Info-vax mailing list