From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:50949) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rw0lu-0001lb-5C for qemu-devel@nongnu.org; Fri, 10 Feb 2012 19:24:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rw0lt-0004fc-4D for qemu-devel@nongnu.org; Fri, 10 Feb 2012 19:24:58 -0500 Received: from cantor2.suse.de ([195.135.220.15]:41392 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rw0ls-0004fX-HZ for qemu-devel@nongnu.org; Fri, 10 Feb 2012 19:24:57 -0500 Message-ID: <4F35B555.2050308@suse.de> Date: Sat, 11 Feb 2012 01:24:53 +0100 From: =?ISO-8859-1?Q?Andreas_F=E4rber?= MIME-Version: 1.0 References: <4F354883.602@suse.de> <201202102325.54423.paul@codesourcery.com> In-Reply-To: <201202102325.54423.paul@codesourcery.com> Content-Type: multipart/mixed; boundary="------------090601000409010802050404" Subject: Re: [Qemu-devel] Memory: how to determine the max memory size of one VM? List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: Zhi Yong Wu , Stefan Hajnoczi , Alexander Graf , qemu-devel@nongnu.org, Stefan Weil This is a multi-part message in MIME format. --------------090601000409010802050404 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Am 11.02.2012 00:25, schrieb Paul Brook: >> ii) Some tracing of mine indicates QEMU has a highly dynamic memory >> usage during runtime, be it due to network layer, block layer or >> whatever exactly. >=20 > We do? Significant compared to the size of guest ram? That sounds like= a bug. Attached is a gnuplot from a simpletrace trace file while installing a SLES 11 SP2 Release Candidate over slirp to virtio with -m 8G on an 8 GiB host (post-1.0 master). It's not fully scientifically correct (it doesn't take into account memory allocations not traced by QEMU itself, like pthreads) but it suggests that after the initial surge to ~8.7 GB we have a fluctuation of ~0.2 GB for 8 GiB guest RAM. It's larger than I'd expect at least. Since the user was close to the limit, this lead to an abort. In their case it was a pthread_create() that failed, and we used tap + virtio. Didn't investigate the exact origin of the fluctuations (yet), but the combination of the choice to have virtually all allocations abort (which is okay at startup) and of doing allocations during guest runtime turns out Bad(tm) in practice. Andreas --=20 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N=FCrnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imend=F6rffer; HRB 16746 AG N=FCrnbe= rg --------------090601000409010802050404 Content-Type: image/png; name="memorytrace.png" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="memorytrace.png" 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 UuLAqQEAaMolAnj58uXbt2+PjY3Nz8/Pz8+PjY3dtm3b8uXLHTV+dXX15MmTg4KCcnNzc3Nz g4KCpkyZYjQazUuTk5Nnz54dHR2dl5eXnZ2t1+tnzpx57do1R80OAEBTbiaTSXUNotPpsrKy /P39LS0XL14MDAysrKx0yPixsbGZmZkff/yxpWXOnDmhoaHLli0TkbCwsJdeemn+/PmWpVu2 bKmtrV28eLH9Yd3cbn313NzEBV7MVrIuvlOheIU6df0UrwrF2+QSR8Cenp5NG728vCyP09PT Q0NDPT09/f39N2/e3Nw4zb3NkJSUFBUVpW2JioravXu3+fHRo0fDw8O1S6dPn56YmNj6+gEA aCuXCOAlS5bMnj374MGDVVVVVVVVBw4cmDVr1tKlS81Ls7Ozn3322RUrVpSWlu7cuTMmJiYt La1N458+fXrUqFHalsDAwDNnzthZ5dSpU23cCAAA2sAlTguYTKZnnnlm165dlpaIiIgvvvjC fEQbFRU1atSolStXmhft3r37gw8++Nvf/tZ0nOZOFHh4eNTU1Li7u1tarl+/3qNHD/MbvRMn TlywYIH2EHnr1q2LFi1q8W1gTkGrQvEKder6KV4VirfN5ALefvttPz+/xMTEioqKioqKxMRE Pz+/9evXm5cOGzbs7Nmzls4VFRWDBg2yOU5zm+Pu7l5XV6dtqaur8/DwMD9OTk6+77774uPj y8rKysrKtm7d2rt3b09PzxbLdsrPAwDgYloTZO3gEn+VDB06dOvWrZMmTbK0pKWlvfzyyzk5 OSLStWvXuro6bf8uXbpYPqRk5+Nllk3r169fVlZWv379LIuKi4sff/zxoqIi89P09PQ333wz IyPj5s2bQUFBy5Yte/31182zAwDgDC7xHnBBQUFISIi2JSQkpKCgwPxYp9MVFhZq/2rQfkTY 6pDU5hHqyJEjT548qR0/KysrICDA8jQsLCwlJaW6utpoNB46dMjHx2fcuHHO2FIAAMxcIoD9 /PwyMzO1LRkZGYMHDzY/1uv1liuW2yc8PDwhIUHbkpCQMGPGjOb6b9q0KTo6+nZmBADAPpcI 4OXLl8+bNy8pKenKlSsGg2HXrl3z5s1bsWKFeemqVavWrFkTHx9/+fLlmpqa5OTkadOmtWn8 6Ojow4cPr1271mAwGAyGmJiYI0eOLFiwwNIhPDz8+PHj169fz8nJWbhw4cCBA7XnwwEAcDwn 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 AElFTkSuQmCC --------------090601000409010802050404--