2013-04-19

Fedora Alpha 19: Important. Must Read. Etc Etc.

While I am working through RC4 to get to the post install parts there is an important question that keeps coming up in the many mailing lists:

Question: Why is Fedora 19 Alpha so slow and memory hogging?!?! [There are various versions of this mostly from people who tried to install it on some system that runs Fedora 18 well.]

Answer: Alphas for Fedora have many debug switches turned on that are not turned on for Beta or Final releases. These flags use more memory, more cpu cycles, and are generally performance degrading. However they allow for the best place to find bugs and give developers the most information on what is actually the cause and reason for that bug. Without them in place bug finding tends towards:

  • User to developer: My app crashed.
  • Developer to User: Ok what were you doing?
  • User to developer: I don't know...
  • Developer to user: Ok tell me when it crashes again and see what you were doing. 
  • User never sees that crash again.
  • User2 to developer: My app crashed...
  • Repeat infinitum.
  • Developer to userN+1: Here try downloading and running this version I have with all the debug flags turned on. Its slow but maybe it will catch it.
  • Repeat sometime.
  • UserN+20: Oh I have a lovely crash dump.
Now tools like abrt can help with this by cutting down many of the steps you see above.. but in the end, many bugs require a special debug running on the users system to find out why some lock thought it was ok to let go of something it wasn't or why some code walked a variable out of memory when 99.9999% of the time it doesn't. However the usability cost of those flags in a system can be horrendous as seen by the many people who are willing to test, but weren't prepared that for some applications or usages.. it was going to be using molasses.

Currently for Fedora 19, the large user of memory is the kernel, and if you are not running into problems, you can disable this effect with a kernel boot time argument of

slub_debug=-

Edited to add: I pressed Post when I meant to save it. Other items that one should use for Alpha testing is 4x-8x recommended regular memory ( I would say that 2GB is a minimum usable and 4GB very workable on x86_64, 1GB/2GB for x86_32) and more CPU (2.5 Ghz Pentium IV class is "workable" but less than that is painful) and more patience :).

No comments: