vineri, 3 iunie 2011

The myth of drop_caches

I will try to clarify the myth about drop_caches.

This along with other settings can be made in the folder /proc/sys/vm/ .

First, the files in this directory can be used to tune the operation
of the virtual memory (VM) subsystem of the Linux kernel and also to
writeout of dirty data to disk.

About drop_caches we can say that is only one of the options and not only make
causes the kernel to drop clean caches, and dentries inodes from memory,
the result causing that memory to become free.

We have three basic options :

  • to free pagecache: echo 1 > /proc/sys/vm/drop_caches
  • to free dentries and inodes: echo 2 > /proc/sys/vm/drop_caches
  • to free pagecache, dentries and inodes: echo 3 > /proc/sys/vm/drop_caches

Note that user should run sync first.

What happens then?

The answer is also simple and clear.

If you drop the cache than the CPU load go up.This happen because the cache is gone.

Also available RAM goes up, because the cache is empty.

Logical , the performance will suffer because you are not taking advantage of the cache.

Then over time, the caches will fill and this is a good thing, if you don't instruct Linux to drop the caches.

In reality dropping caches has little positive effect on performance, but in fact, it tends to have a negative effect in long term.

I hope I have correctly understood and explained, so if you think it is not, I wait your feedback.

Fighting Blender, NVIDIA and GNOME ...

Today I spent some time with Blender, NVIDIA and GNOME ...

Since I did preupdate and put Fedora 15, the system worked well until today.

Today I tried to relax a bit with Blender 3D, but ...

[free-tutorials@user ~]$blender
Info: Config directory with "startup.blend" file not found.
Segmentation fault (core dumped)</code></pre>

How to prevent uploading that file? Simply using:

[free-tutorials@user ~]$blender --factory-startup 
Segmentation fault (core dumped)</code></pre>

Obviously, I should try to debug:

[free-tutorials@user ~]$blender --factory-startup  -d
Blender 2.57 (sub 0)
Build: 2011-04-27 16:56:56 Linux:32bit Release
argv[0] = blender
argv[1] = --factory-startup
argv[2] = -d
read file 
  Version 256 sub 6 svn r36063

ordered
 OBCube
 OBLamp
 OBCamera
Segmentation fault (core dumped)</code></pre>

Simply don't wants, it's something related to graphics card ...

[free-tutorials@user ~]$blender --factory-startup  -d -noglsl 
Blender 2.57 (sub 0)
Build: 2011-04-27 16:56:56 Linux:32bit Release
argv[0] = blender
argv[1] = --factory-startup
argv[2] = -d
argv[3] = -noglsl
read file 
  Version 256 sub 6 svn r36063

ordered
 OBCube
 OBLamp
 OBCamera
Segmentation fault (core dumped)</code></pre>

So the problem is not related to GLSL.

Then I tried to see what glxinfo says.

[free-tutorials@user ~]$glxinfo | grep Error
Error: glXCreateContext failed</code></pre>

I found this problem and I added to xorg.conf the following lines of code.

Section "Files"
ModulePath "/usr/lib/xorg/modules/extensions/nvidia"
ModulePath "/usr/lib/xorg/modules/drivers"
ModulePath "/usr/lib/xorg/modules"
EndSection </code></pre>

I must admit that after restarting the computer, greeted me with the gnome interface and unprecedented special effects.

Then I waited ... and waited ... I fixed up with a simple line of code:

$  gsettings set org.gnome.desktop.session session-name 'gnome-fallback'</code></pre>

... written in xfce terminal, because in gnome I have not succeeded.

Now I have the old gnome, slightly improved but it works flawlessly with Blender 3D...