[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