RE: [Zope] MemoryError that brings my zope to its knees
What's the amount of RAM you have ? Have you changed the default pool-size in the <zodb> section ? Pascal -----Message d'origine----- De : zope-bounces@zope.org [mailto:zope-bounces@zope.org]De la part de Calvin Hendryx-Parker Envoyé : mardi 13 septembre 2005 11:44 À : zope@zope.org Objet : [Zope] MemoryError that brings my zope to its knees In the last month I have started to get these errors using Zope 2.7.7 in a ZEO configuration with one client and one storage server: ------ 2005-09-12T23:46:07 ERROR(200) ZODB Couldn't load state for 0x055ba7 Traceback (most recent call last): File "/usr/local/Zope/lib/python/ZODB/Connection.py", line 600, in setstate self._set_ghost_state(obj, p) File "/usr/local/Zope/lib/python/ZODB/Connection.py", line 639, in _set_ghost_state state = unpickler.load() MemoryError ------ 2005-09-12T23:46:07 ERROR(200) SiteError Error while logging Traceback (most recent call last): File "/usr/local/Zope/lib/python/Products/SiteErrorLog/SiteErrorLog.py", line 142, in raising tb_text = ''.join( MemoryError Sometimes I see this too: ------ 2005-09-06T15:23:30 ERROR(200) ZServer uncaptured python exception, closing channel <select-trigger (pipe) at bd9104c> (exceptions.MemoryError: [/usr/local/lib/python2.3/asyncore.py|read|69] [/usr/local/lib/python2.3/asyncore.py|handle_read_event|390] [/usr/local/Zope/lib/python/ZServer/medusa/thread/select_trigger.py|handle_r ead|77] [/usr/local/lib/python2.3/asyncore.py|recv|342] [/usr/local/lib/python2.3/asyncore.py|recv|523]) And this one also brings the show down: ------ 2005-09-06T05:35:51 ERROR(200) zrpc:30832 can't decode message: "(M2'K\x00U\x06.reply(TW\x00\x01\x00((U\tOFS.Imageq\x01U..." ------ 2005-09-06T05:35:51 ERROR(200) zrpc-conn(C):localhost:6100 Error caught in asyncore Traceback (most recent call last): File "/usr/local/lib/python2.3/asyncore.py", line 69, in read obj.handle_read_event() File "/usr/local/lib/python2.3/asyncore.py", line 390, in handle_read_event self.handle_read() File "/usr/local/Zope/lib/python/ZEO/zrpc/smac.py", line 217, in handle_read self.message_input(msg) File "/usr/local/Zope/lib/python/ZEO/zrpc/connection.py", line 339, in message_input msgid, flags, name, args = self.marshal.decode(message) File "/usr/local/Zope/lib/python/ZEO/zrpc/marshal.py", line 39, in decode return unpickler.load() # msgid, flags, name, args MemoryError It completely locks up the zope until I restart. I added more RAM to the box and also bumped up the zeo cache-size to 100MB and 10000 objects in the zope.conf. I also changed over from binding to an external ethernet interface and bound the zeo stuff to the localhost interface. Any ideas on other things I could try? Thanks, Calvin -- S i x F e e t U p | "Nowhere to go but open-source" Silicon Valley: +1 (650) 401-8579 | Midwest: +1 (317) 861-5948 Toll-Free: 1-866-SIX-FEET mailto:calvin@sixfeetup.com http://www.sixfeetup.com | Zope Hosting from $19.95/month _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev ) ********************************************************************** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify the system manager. This footnote also confirms that this email message has been swept by MIMEsweeper for the presence of computer viruses. www.mimesweeper.com **********************************************************************
On Sep 13, 2005, at 12:00 PM, Pascal Peregrina wrote:
What's the amount of RAM you have ?
When we started having this problem the box only had 1GB of RAM so we replaced that RAM completely and put in a fresh 4GB of RAM to hopefully get rid of the problem. This box is also running 3 other Zope instances, but the other don't exhibit this problem. This instance has 15 plone site instances in it. The others only have a couple plone sites each. This problem will happen and there will still be 1GB of free RAM and it hasn't touched the swap at all. We are running FreeBSD 4.10 on this box.
Have you changed the default pool-size in the <zodb> section ?
I'm assuming it isn't changed since it isn't in our zope.conf. Must be a newer config that we didn't have from an old zope that this one was upgraded from. Here are the details from the Cache Parameters tab in the ZMI on this ZEO instance: Total number of objects in the database 282934 Total number of objects in memory from all caches 6512 Target number of objects in memory per cache 10000 Total number of objects in each cache: Cache Name Number of active objects Total active and non-active objects <Connection at 09e5684c> 6048 18746 <Connection at 0e92902c> 464 1249 Total 6512 Thanks, Calvin -- S i x F e e t U p | "Nowhere to go but open-source" Silicon Valley: +1 (650) 401-8579 | Midwest: +1 (317) 861-5948 Toll-Free: 1-866-SIX-FEET mailto:calvin@sixfeetup.com http://www.sixfeetup.com | Zope Hosting from $19.95/month
This problem will happen and there will still be 1GB of free RAM and it hasn't touched the swap at all. We are running FreeBSD 4.10 on this box.
the kernel limits the amount of ram a process can bind by default. try the following put this in /boot/loader.conf kern.maxdsiz="1610612736" kern.dfldsiz="1610612736" kerm.maxssiz="1610612736" put the following into your kernel conf file, rebuild your kernel and reboot: options MAXDSIZ="(768*1024*1024)" options MAXSSIZ="(256*1024*1024)" options DFLDSIZ="(768*1024*1024)" the values are examples only, you will need to play with them to find the right ones. keep in mind that the wrong ones, e if you put them too close to the amount of physical ram in the box could cause the box not to boot. hth
George Donnelly wrote:
the kernel limits the amount of ram a process can bind by default.
try the following
put this in /boot/loader.conf
kern.maxdsiz="1610612736" kern.dfldsiz="1610612736" kerm.maxssiz="1610612736"
Thanks for the hint George, I was able to accomplish this using only the loader.conf stuff. I checked with ulimit after a reboot and I now the data seg size is 1G. That should hold it for a while. Thanks again, Calvin -- S i x F e e t U p | "Nowhere to go but open-source" Silicon Valley: +1 (650) 401-8579 | Midwest: +1 (317) 861-5948 Toll-Free: 1-866-SIX-FEET mailto:calvin@sixfeetup.com http://www.sixfeetup.com | Zope Hosting from $19.95/month
participants (3)
-
Calvin Hendryx-Parker -
George Donnelly -
Pascal Peregrina