Autor Thema: The Buffer pool is extremely full; delay the thread  (Gelesen 10861 mal)

Offline Dark Raven

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
Die Meldung bekomme ich, wenn ich eine bestimmte Ansicht in einer DB mit 20.000 Datensätzen öffnen will.  :'(

Ich denke, das ich hier mit "NSF_BUFFER_POOL_SIZE" weiter kommen würde, aber ich finde keine Möglichkeit, den aktuellen Wert heraus zu finden.
 
-------------------------------------
Domino 6.5 auf Linux 2.6.1 #2
1 GB RAM (die Konsole zeigt bei show memory 0 an ???

Glombi

  • Gast
Re:The Buffer pool is extremely full; delay the thread
« Antwort #1 am: 08.02.04 - 15:40:10 »
In der KBASE habe ich nur ein Dokument mit der Fehlermeldung gefunden - allerdings für Mac-Clients:

Problem
Macintosh clients are unable to open a particular Notes database that has been replicated locally.  Mac users can open the database on the server with no problems.  However, after replicating the database locally, attempts to open the database yield the following error message:

"B-Tree structure is invalid"

Clients may also receive this error:

"Buffer pool is extremely full"

PCs are able to replicate and open the database successfully.




This problem occurs because there is a buffer pool that is too small to contain the results of the sort.

The suggested solution is to add the variable NSF_BUFFER_POOL_SIZE_MB to the Notes Preferences file, and set it to "32".

This parameter will increase the buffer pool size to what value you set it to.

Supporting Information:

To edit the Notes Preferences File on the Mac client you need to use the Mac Preference Editor.

Andreas

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re:The Buffer pool is extremely full; delay the thread
« Antwort #2 am: 08.02.04 - 15:44:42 »
 :D schöne Fehlermeldung. "extremely full"; die hat bestimmt kein Linguistiker formuliert...
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline Dark Raven

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
Re:The Buffer pool is extremely full; delay the thread
« Antwort #3 am: 08.02.04 - 15:50:23 »
Die Beschreibung ist genau anders herum wie mein Problem. Die Windows Clients können die DB lokal replizieren und öffnen. Nur vom Server aus gibt es die Probleme.

Wie kann ich denn die Variable "NSF_BUFFER_POOL_SIZE_MB" auslesen? Mit Show Configuration bekomme ich nichts zurück.

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:The Buffer pool is extremely full; delay the thread
« Antwort #4 am: 08.02.04 - 15:56:38 »
Wenn sh conf nix absondert, dann ist auf des Servers INI keine Einstellung in dieser Richtung zu finden. Defaults werden mit sh conf nicht angezeigt.

Schau mal in die KBase nach sinnvollen / empfohlenen Werten und mach ein set conf. Vielleicht hilft das schon. Bei 20 kDocs sollte aber diese Meldung noch nicht kommen, es sei denn, die Ansicht ist arg vergewaltigt.

HTH,
Bernhard

Offline Dark Raven

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
Re:The Buffer pool is extremely full; delay the thread
« Antwort #5 am: 08.02.04 - 16:01:05 »
In der Ansicht ist nichts spektakuläres drin. Die erste Spalte ist sortiert. Für 5 andere Spalten kann man eine Sortierung auf den Spaltenkopf einschalten.

Habe auch schon deutlich größere DBs entwickelt. Allerdings ist das jetzt die Erste auf einem Linux Server ( >:( nix als Ärger damit: Datumsformat anders, Zeilenschaltung in Mails anders ..., nix läuft mit den Prozeduren richtig, die seit Jahren unter Windows Server funktionieren.

Glombi

  • Gast
Re:The Buffer pool is extremely full; delay the thread
« Antwort #6 am: 08.02.04 - 16:04:13 »
Hier die Q&A zum Thema aus der KBASE:

Title:   
      Q & A: The Use, Values and Settings of NSF Buffer Pool
Product:   Lotus Domino  >  Lotus Domino Server  >  5.x
Platform(s):   Platform Independent
Document Number:   7002730   Date:   14.04.2003


Q:  What is the NSF Buffer Pool?

A:  The NSF Buffer Pool is one of many Domino shared memory pools.  A Domino shared memory pool, by definition, is a chunk of memory that is pre-allocated and used system wide between Domino threads and/or processes.  The NSF Buffer Pool is only Domino memory pool that is configurable by the user.

The NSF Buffer Pool is a section of memory dedicated to buffering I/O transfers between the NIF (Notes Index Facility) indexing functions and disk storage.  By changing the size of NSF Buffer Pool you can control the size of the memory section used for this buffering.  The number of users, size and number of views, and number of  databases all affect how you the buffer pool size should be set.

Q:  What are the minimum and maximum sizes of NSF Buffer Pool?

A:  Minimum value:   4 MB

Maximum value:
   In Release 5.0.4+, the NSFBufferPool has no effective size limit, though it is constrained by operating system limits.
   In R5 up to 5.0.3, it is 1920 MB
   R4.5x/4.6x, it is 508 MB
 
Q:  How is NSF Buffer Pool size configured in R5?

A:  By default:

The algorithm used to set the default size of the NSF Buffer Pool is hard-coded within R5 and works as follows:

   1/8 of physical memory up to 32 MB
   1/4 of physical memory from 32 MB to 128 MB
   3/8 of physical memory from 128 MB to total amount

That is, take 1/8 of the first 32 MB, 1/4 of the next 96 MB, and 3/8 of everything beyond that.

For example, a server with 512 MB of RAM would allocate an NSF Buffer Pool Size of 172 MBytes

(32/8) + (96/4) + ((512-128)*3/8) = 172


-  Directly via the NSF_BUFFER_POOL_SIZE notes.ini parameter:

Specified as number of bytes.  2 GB size limitation due to notes.ini variable limits.
(NOTES.INI variables are signed variables, and cannot be larger than 2 GB.)

-  Directly via the NSF_BUFFER_POOL_SIZE_MB notes.ini parameter:

Specifies the size in megabytes, instead of bytes.  Used to avoid the 2 GB limitation that exists if using the NSF_BUFFER_POOL_SIZE INI parameter.

-  Indirectly via the PercentAvailSysResources notes.ini parameter:

Uses this parameter to inform Domino how much to adjust real RAM value in percentage terms before calculating the size of the NSF Buffer Pool.  The adjusted RAM value will be used as input in the DEFAULT calculation specified above in determining the  size of the NSF Buffer Pool.

Example:
If PercentAvailSysResources=50 and you have 4 GB of RAM; then 2 GB (50% of 4 GB) will be used in the default calculation of the NSF Buffer Pool size.


If both PercentAvailSysResources and  NSF_BUFFER_POOL_SIZE are both set, then the NSF_BUFFER_POOL_SIZE value is used and PercentAvailSysResources is ignored.

NOTE: It is NOT recommended to use both parameters.  The recommended method is to set NSF Buffer Pool size to use PercentAvailSysResources on Domino  5.0.4+ releases (where this new parameter was introduced) and NSF_BUFFER_POOL_SIZE prior to 5.0.4.

Q:  When is manually setting the size of the NSF Buffer Pool recommended?

A:  Tuning the size of the NSF Buffer Pool should not be necessary, EXCEPT on partitioned servers.  On partitioned servers, allocating all of the memory normally (by default) reserved for the NSF Buffer Pool could result in problems by over-commiting memory.

For example, a computer with eight Domino partitioned servers could not allocate the default NSF Buffer Pool size per partition, as the memory allocated will exceed the RAM available and will therefore be using virtual memory (resulting in high paging activity).  Administrators should use the PercentAvailSysResource INI parameter to share out equally the RAM across the number of partitions.  For example, if you have two partitions, then for each partition  PercentAvailSysResource would be set to 50 (percent).  If you have four partitions, then it would be set to 25%, etc.  Administrators can then modify the setting for each partition depending on the relative load.  You would normally reach the limit.  The way to determine if a buffer pool is too small (relative to the buffer pools of other partitioned servers on the same machine) is to compare the buffer pool hit rates.  If the hit rates differ significantly (for example, 96% vs. 99%), then the server with the lower hit rate should have a larger buffer pool.  

Additionally, there may be some cases where Domino does not require all of the memory in the NSF Buffer Pool, so administrators may wish to experiment with decreasing the amount of memory in the NSF Buffer Pool by setting one of the NOTES.INI variables.  This allows the server to use the memory for other purposes (by other Domino shared memory pools, third party applications or the OS itself).  In general, it is best to allow Domino to allocate memory for the NSF Buffer Pool by default.

On a NON-partitioned server, the NSF Buffer Pool should only be set manually if:

   the server is running slowly due to inadequate available memory that shows up via OS statistics indicating a high level of paging activity, or
   if Domino statistics indicate that the pool size is very much over or under configured.

Q:  Why was the PercentAvailSysResources Notes.ini parameter introduced?

A:  This is now the recommended way to configure the NSF buffer pool if running with Domino 5.0.4 or greater.  PercentAvailSysResources was introduced in order to simplify the setting of the NSF Buffer Pool.  In the past, a large number of customer issues were the result of incorrectly setting the NSF Buffer Pool (using the  NSF_BUFFER_POOL_SIZE notes.ini parameter).  For example, the value specified was done in kilobytes instead of bytes or the value was set to a very small or very large value by miscalculation.  By using the PercentAvailSysResources parameter, the calculation for the customer is much simplified, leaving less room for error.

Other advantages are, when adding more memory to the server, with the newer PercentAvailSysResources variable there is no changes required to the Domino configuration to reset the size of the NSF Buffer Pool.  It is done automatically because it is working in percentage terms.  Additionally, when adding extra Domino partitions, the calculations are easier to carry out (with less room for error).  For example, in a two Domino partition setup, typically PercentAvailSysResources would set to 50 (50%) for each partition.  If a third partition were added, each partition would reset the PercentAvailSysResources value to 33 ( 100%/# of partitions).  If you were setting the NSF Buffer Pool size via the NSF_BUFFER_POOL_SIZE parameter, the calculations would be more complex.

There still may be times when the NSF_BUFFER_POOL_SIZE INI parameter may recommended by Lotus support to obtain a quick and exact setting of the NSF_BUFFER_POOL, however, if support resolves the customer's issue, the  NSF_BUFFER_POOL_SIZE parameter should be removed, and the PercentAvailSysResources setting should be configured to provide the same buffer pool size as when the NSF_BUFFER_POOL_SIZE parameter was enabled.


Q:  What other Domino processes/configuration does the NSF buffer pool size affect?

A:  The NSF Buffer Pool size is used as input in determining the default values of other functions These functions are not related in any way to the function of the NSF Buffer Pool.  The NSF Buffer Pool is simply a value used in an algorithm to provide the default value.

 - Server Task: Dbcache Max entries  
Default setting NSFBuffer Pool Size in MB x 3        

 - Router Task: Router transfer and delivery threads
Default setting      
Transfer Threads = MIN(25, (3 + (NSFBufferpoolsize in MB)/32)  
Delivery Threads =  MIN(25, (3 + (NSFBufferpoolsize in MB)/32)

 NOTE: the above default settings can be overridden by other means.

Glombi

  • Gast
Re:The Buffer pool is extremely full; delay the thread
« Antwort #7 am: 08.02.04 - 16:06:07 »
und es sei noch folgender Artikel aus Iris Today empfohlen:

http://www-10.lotus.com/ldd/today.nsf/0/8f74beda2b9ec23a852569a60068316d?OpenDocument

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:The Buffer pool is extremely full; delay the thread
« Antwort #8 am: 08.02.04 - 16:08:05 »
Und wo ist der Wetterbericht, Andreas ?  ;D

Äh, da hier immer kompaktere Gegenstände am Fenster vorbeifliegen (und am Horizont neben blauem Himmel rieisge Haufenwolken dräuen), sach ich ma: Wenn Ihr von mir in den nächsten 24 Stunden nix mehr von mir hört, behaltet mich in guter Erinnerung  ;D

Bernhard  :)

Glombi

  • Gast
Re:The Buffer pool is extremely full; delay the thread
« Antwort #9 am: 08.02.04 - 16:13:55 »
Habe auch schon deutlich größere DBs entwickelt. Allerdings ist das jetzt die Erste auf einem Linux Server ( >:( nix als Ärger damit: Datumsformat anders, Zeilenschaltung in Mails anders ..., nix läuft mit den Prozeduren richtig, die seit Jahren unter Windows Server funktionieren.
Das ist in der Tat ein Kapitel für sich. Einen ähnlichen Thread hatten wir erst gerade (im Offtopic glaube ich, von fritandr initiiert). Allgemeiner Tenor: Es ist Sache des Programmierers dafür zu sorgen, dass die Applikation BS-unabhängig läuft.

Beim Datumsformat kann man sich in Notes ganz gut behelfen: Einfach üer NOTES.INI Variable dem Server sagen, wie er es darstellen soll.
Wegen der Zeilenschaltung weiß ich keine Lösung.
Wegen der Prozeduren: Das muesste man sich im einzelnen ansehen.

Andreas

Glombi

  • Gast
Re:The Buffer pool is extremely full; delay the thread
« Antwort #10 am: 08.02.04 - 16:16:06 »
Äh, da hier immer kompaktere Gegenstände am Fenster vorbeifliegen (und am Horizont neben blauem Himmel rieisge Haufenwolken dräuen), sach ich ma: Wenn Ihr von mir in den nächsten 24 Stunden nix mehr von mir hört, behaltet mich in guter Erinnerung  ;D
Fliegen die Kühe schon  ;D

Aktuelle Wetterlage: Kelkheim, 16:15: leicht bewölkt, mäßiger Wind aus SW

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:The Buffer pool is extremely full; delay the thread
« Antwort #11 am: 08.02.04 - 16:26:17 »
Fliegende Kühe ? Im Winter ? Geht doch in Bayern im Winter gar nicht:
"Auf Almen darf man sorglos lieben, denn im Herbst wird abgetrieben !"  ;D

Siegsdorf: 3,1 Grad, sehr starker Wind aus Nord.

Offline Dark Raven

  • Frischling
  • *
  • Beiträge: 21
  • Geschlecht: Männlich
Re:The Buffer pool is extremely full; delay the thread
« Antwort #12 am: 09.02.04 - 00:52:07 »
Jetzt habe ich mal als notes.ini Variable "NSF_BUFFER_POOL_SIZE_MB=128" eingetragen. Die Datenbank läßt sich jetzt wieder öffnen  :)

Seltsam bleibt es aber trotzdem, weil ich nach wie vor nicht weis, welchen Wert der Server vorher verwendet hat.

Trotzdem Danke für die Hilfe!

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re:The Buffer pool is extremely full; delay the thread
« Antwort #13 am: 09.02.04 - 11:43:48 »
Hm mit dem Befehl Show stat Database kann man sich sämtiche relevanten Werte auf der Server Konsole anzeigen lassen. Unter anderem auch wie groß der NSF Buffer Pool momentan gerade ist.

Grüße

Ralf
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz