]> pere.pagekite.me Git - homepage.git/blobdiff - blog/index.html
Generated.
[homepage.git] / blog / index.html
index 1b55c02965d3e1de29f1924821cceeb9847178e2..f8cfac012057dad74e2b4bbfe8fd1104546c40bf 100644 (file)
 
 
     
 
 
     
+    <div class="entry">
+      <div class="title"><a href="http://people.skolelinux.org/pere/blog/Why_the_KDE_menu_is_slow_when__usr__is_NFS_mounted___and_a_workaround.html">Why the KDE menu is slow when /usr/ is NFS mounted - and a workaround</a></div>
+      <div class="date"> 6th April 2012</div>
+      <div class="body"><p>Recently I have spent time with
+<a href="http://www.slxdrift.no/">Skolelinux Drift AS</a> on speeding
+up a <a href="http://www.skolelinux.org/">Debian Edu / Skolelinux</a>
+Lenny installation using LTSP diskless workstations, and in the
+process I discovered something very surprising.  The reason the KDE
+menu was responding slow when using it for the first time, was mostly
+due to the way KDE find application icons.  I discovered that showing
+the Multimedia menu would cause more than 20 000 IP packages to be
+passed between the LTSP client and the NFS server.  Most of these were
+
+NFS LOOKUP calls, resulting in a NFS3ERR_NOENT response.  Because the
+ping times between the client and the server were in the range 2-20
+ms, the menus would be very slow.  Looking at the strace of kicker in
+Lenny (or plasma-desktop i Squeeze - same problem there), I see that
+the source of these NFS calls are access(2) system calls for
+non-existing files.  KDE can do hundreds of access(2) calls to find
+one icon file.  In my example, just finding the mplayer icon required
+around 230 access(2) calls.</p>
+
+<p>The KDE code seem to search for icons using a list of icon
+directories, and the list of possible directories is large.  In
+(almost) each directory, it look for files ending in .png, .svgz, .svg
+and .xpm.  The result is a very slow KDE menu when /usr/ is NFS
+mounted.  Showing a single sub menu may result in thousands of NFS
+requests.  I am not the first one to discover this.  I found a
+<a href="https://bugs.kde.org/show_bug.cgi?id=211416">KDE bug report
+from 2009</a> about this problem, and it is still unsolved.</p>
+
+<p>My solution to speed up the KDE menu was to create a package
+kde-icon-cache that upon installation will look at all .desktop files
+used to generate the KDE menu, find their icons, search the icon paths
+for the file that KDE will end up finding at run time, and copying the
+icon file to /var/lib/kde-icon-cache/.  Finally, I add symlinks to
+these icon files in one of the first directories where KDE will look
+for them.  This cut down the number of file accesses required to find
+one icon from several hundred to less than 5, and make the KDE menu
+almost instantaneous.  I'm not quite sure where to make the package
+publicly available, so for now it is only available on request.</p>
+
+<p>The bug report mention that this do not only affect the KDE menu
+and icon handling, but also the login process.  Not quite sure how to
+speed up that part without replacing NFS with for example NBD, and
+that is not really an option at the moment.</p>
+
+<p>If you got feedback on this issue, please let us know on debian-edu
+(at) lists.debian.org.</p>
+</div>
+      <div class="tags">
+        
+        
+        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>. 
+        
+        
+      </div>
+    </div>
+    <div class="padding"></div>
+    
     <div class="entry">
       <div class="title"><a href="http://people.skolelinux.org/pere/blog/Debian_Edu_in_the_Linux_Weekly_News.html">Debian Edu in the Linux Weekly News</a></div>
       <div class="date"> 5th April 2012</div>
     <div class="entry">
       <div class="title"><a href="http://people.skolelinux.org/pere/blog/Debian_Edu_in_the_Linux_Weekly_News.html">Debian Edu in the Linux Weekly News</a></div>
       <div class="date"> 5th April 2012</div>
@@ -624,60 +684,6 @@ Edu users in this country has to be part of it.</p>
     </div>
     <div class="padding"></div>
     
     </div>
     <div class="padding"></div>
     
-    <div class="entry">
-      <div class="title"><a href="http://people.skolelinux.org/pere/blog/Writing_and_translating_documentation_in_Debian_Edu.html">Writing and translating documentation in Debian Edu</a></div>
-      <div class="date">16th March 2012</div>
-      <div class="body"><p>Documentation in Debian Edu is provided in several languages, and
-it is important to make it both easy to contribute and to keep the
-translated versions in sync.  To do this we have come up with what we
-believe is a very efficient work flow.</p>
-
-<ol>
-
-<li>The documentation is written in a
-<a href="http://moinmo.in">moinmoin wiki</a> (see for example
-<a href="http://wiki.debian.org/DebianEdu/Documentation/Squeeze">the
-Squeeze release manual</a>) with support for exporting the content as
-docbook XML.</li>
-
-<li>This docbook document is given to po4a to extract a gettext style
-.pot file with the content, which in turn is used to create .po files
-with the translated text.</li>
-
-<li>The .po files are given to translators, and they can always tell
-which part of the original wiki document is new or changed.  They can
-use their normal translation tools like lokalize or poedit to write
-the translation.  There is even a system in place to handle translated
-images.</li>
-
-<li>The translated .po files are combined with the original docbook
-XML document using po4a to create a translated docbook document.</li>
-
-<li>The final step is to use all the generated docbook files and
-create PDF and HTML version of the original and translated documents.</li>
-
-</ol>
-
-<p>This setup work very well, but have a few issues.  The biggest
-issue is that <a href="http://moinmo.in/DocBook">the docbook support
-we use in moinmoin</a> is not actively maintained.  The docbook
-support is also buggy, and our build system contain workarounds to
-make sure the generated docbook is usable despite these bugs.</p>
-
-<p>If you want to have a look at our setup, it is all there in the
-<a href="http://packages.qa.debian.org/debian-edu-doc">debian-edu-doc
-package</a>.</p>
-</div>
-      <div class="tags">
-        
-        
-        Tags: <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>. 
-        
-        
-      </div>
-    </div>
-    <div class="padding"></div>
-    
     <p style="text-align: right;"><a href="index.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
     <div id="sidebar">
       
     <p style="text-align: right;"><a href="index.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS feed" width="36" height="14" /></a></p>
     <div id="sidebar">
       
@@ -695,7 +701,7 @@ package</a>.</p>
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
 
 
 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
 
-<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (2)</a></li>
+<li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (3)</a></li>
 
 </ul></li>
 
 
 </ul></li>
 
@@ -816,11 +822,11 @@ package</a>.</p>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (54)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (54)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (95)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (96)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (7)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (7)</a></li>
 
- <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (119)</a></li>
+ <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (120)</a></li>
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (15)</a></li>
 
 
  <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (15)</a></li>