ThinClientMemoryUsage

Differences between revisions 6 and 7
Revision 6 as of 2005-11-03 16:52:41
Size: 3657
Editor: 209
Comment:
Revision 7 as of 2005-11-03 18:07:33
Size: 4628
Editor: 209
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
In order to have a good chance of Dapper being used in an older school lab, or non-profit organization, Dapper will have to be able to boot thin clients that have, at a minimum, of 32 megabytes of memory. In order to for Dapper to be considered as a solution for breathing new life into old machines by using them as thin clients, Dapper will have to be able to boot thin clients that have 32 megabytes of memory as a minimum requirement.
Line 14: Line 14:
There are a lot of older machines out there, and one of the huge selling points of any thin client GNU/Linux solution will be to use existing, older hardware that's unable to be used with other operating system. Third world countries, schools, non-profits, and cost-conscious companies will all be interested in taking advantage of hardware they already own. There are a lot of older machines out there, and one of the huge selling points of any thin client GNU/Linux solution will be to use existing, older hardware that's unable to be used with other operating systems. Developing countries, schools, non-profits, and cost-conscious companies will all be interested in taking advantage of hardware they already own.
Line 18: Line 18:
Jeff has an old lab with a bunch of old Pentium 120's with 32 megs of memory. He's been informed that to upgrade his current operating system that he bought in 1998, to the current one will be both expensive and painful, as it will require him to replace all of his lab machines. However, his good friend Mark gives him a Dapper Drake Ubuntu cd, and within a few hours, he's got it installed on his file server, and has got a shiny new lab without having to buy a single workstation. Jeff has an old lab with a bunch of old Pentium 120's with 32 megs of memory. He's been informed that to upgrade his current operating system that he bought in 1998, to the current one will be both expensive and painful, as it will require him to replace all of his lab machines. However, he hears about Edubuntu on Slashdot, and downloads a Dapper Drake Ubuntu cd, and within a few hours, he's got it installed on a spare file server. He shows his boss the shiny new lab with great educational software without having to upgrade a single workstation, or buy a software license.
Line 20: Line 20:
Scott is a systems administrator at a government agency that is chronically underfunded. His boss wants full internet, email, web browsing, office suite, and other apps on every box, but tells him he must do it without upgrading machines, as, "it isn't in the budget". His friend Mark (yes, the same Mark as above) just happens to pass by with, surprise, surprise, a Dapper Drake CD. The day is saved, once again thanks to Mark. Scott is a systems administrator at a government agency that is chronically underfunded. His boss wants full internet, email, web browsing, office suite, and other apps on every box, but tells him he must do it without upgrading machines, as, "it isn't in the budget". His friend Oliver meets with him for lunch, and gives him a Dapper Drake CD, and offers to come by and help to get it installed. It fits the bill perfectly, and Scott's boss is impressed with the speed, and ease of administration.  She tells him to deploy it in some of their out of town offices as well.
Line 22: Line 22:
Amina and Tiye are the founders of a small start up company working on an embeded thin client kiosk solution to be used in homeless shelters in a developing country. Money's tight, being a startup, and their kiosk portal's a web based solution, but they need something to power the minimal kiosk machine. Mark (this guy gets around) is once again on the scene, with the solution to their problems: A shiny new Dapper CD.

As Jeff, Scott, Amina and Tiye all watch Mark rocket off into the sunset, they turn to each other, and ask, "Who was that masked superhero"?
Amina and Tiye are the founders of a small start up company working on an embeded thin client kiosk solution to be used in homeless shelters in a developing country. Money's tight, being a startup, and their kiosk portal's a web based solution, but they need something to power the minimal kiosk machine. Dapper once again to the rescue, and the embedded boards they chose to use (with only 48 megs of ram) work wonderfully.
Line 28: Line 26:
Saving memory's easy: it's just a case of removing all the bits not needed. The swap stuff's a bit harder, but not much. See Implemntation. To provide the thin client with the thinnest possible footprint, the following steps are needed:
 * Eliminate the loading of the restricted modules. nVidia drivers usually aren't needed on a thin client anyway.
 * Blacklist the loading of certain other modules which won't need to be loaded.
 * Reduce the amount of video ram needed by the client. We should calculate how much is needed to do 1024x768 in 16 bit colour (reasonable for most older machines) and set the VideoRam paramter appropriately in xorg.conf. The administrator should have the ability to manually set this value up or down, depending on if his local clients have more or less memory.
 * On the server, provide some kind of nbd swap daemon so that when a thin client *does* run out of ram, it will simply get a bit slower, as opposed to hard failing because ram's been exhausted.
Line 32: Line 34:
 * Remove as much stuff as possible in the boot up (see ThinClientFasterStartup)
 * Remove the restricted modules. Who puts an nVidia card in a thin client?
 * Find a way to limit the X.org video memory. By default, it's shadowing parts of the video memory into the main memory (in case of our testsystem this was 64MB). 4 or 8's a lot more reasonable.
 * Use swap over nbd. The LTSP project has modified the nbd-swap server to automatically create the swap file on connect if it hasn't been created already.
  * The existing nbd-swapd doesn't create the swap file if it doesn't exist, so ltspswapd is a modification to this. Tested and works.
  * CVSROOT=:pserver:sbalneav@cvs.ltsp.org:/usr/local/cvsroot
  * cvs co ltspswapd

=== Code ===

Videocard memory problem:

Preseed the debconf value xserver-xorg/config/device/video_ram to 2048 byte as a default in /etc/init.d/ltsp-client-setup, but make it respect a different value from lts.conf if one was set.


== Outstanding issues ==

== BoF agenda and discussion ==

Testing where to optimize.
 * Removing unneccessary modules and startup scripts will not only reduce memory, but will speed up the booting. This is being handled by ThinClientFasterStartup.
 * Remove the restricted modules, and the ramdisk that holds them. This will free up to 12 megabytes of ram.
 * Limit the X.org video memory to 2048 kilobytes by default. Add the appropriate shell scripting into ltsp-client-setup to read the X_VIDEORAM parameter from the lts.conf file and pre-seed the debconf value for configuring the xorg.conf file. This will allow the administrator to easily set it up or down as needed.
 * Use swap over nbd to provide a virtual memory solution. If the terminal runs out of ram, it will beging swapping over the network, and slow down considerably, but this is preferable to having the thin client crash or reboot due to memory starvation. The LTSP project has modified the nbd-swapd server to automatically create the swap file on connect if it hasn't been created already. This saves the Ubuntu server administrator the task of having to do this as a manual process. The source for ltsp-swapd can be found at:
  * cvs -d :pserver:anonymous@cvs.ltsp.org:/usr/local/cvsroot co ltspswapd

Summary

In order to for Dapper to be considered as a solution for breathing new life into old machines by using them as thin clients, Dapper will have to be able to boot thin clients that have 32 megabytes of memory as a minimum requirement.

Rationale

There are a lot of older machines out there, and one of the huge selling points of any thin client GNU/Linux solution will be to use existing, older hardware that's unable to be used with other operating systems. Developing countries, schools, non-profits, and cost-conscious companies will all be interested in taking advantage of hardware they already own.

Use cases

Jeff has an old lab with a bunch of old Pentium 120's with 32 megs of memory. He's been informed that to upgrade his current operating system that he bought in 1998, to the current one will be both expensive and painful, as it will require him to replace all of his lab machines. However, he hears about Edubuntu on Slashdot, and downloads a Dapper Drake Ubuntu cd, and within a few hours, he's got it installed on a spare file server. He shows his boss the shiny new lab with great educational software without having to upgrade a single workstation, or buy a software license.

Scott is a systems administrator at a government agency that is chronically underfunded. His boss wants full internet, email, web browsing, office suite, and other apps on every box, but tells him he must do it without upgrading machines, as, "it isn't in the budget". His friend Oliver meets with him for lunch, and gives him a Dapper Drake CD, and offers to come by and help to get it installed. It fits the bill perfectly, and Scott's boss is impressed with the speed, and ease of administration. She tells him to deploy it in some of their out of town offices as well.

Amina and Tiye are the founders of a small start up company working on an embeded thin client kiosk solution to be used in homeless shelters in a developing country. Money's tight, being a startup, and their kiosk portal's a web based solution, but they need something to power the minimal kiosk machine. Dapper once again to the rescue, and the embedded boards they chose to use (with only 48 megs of ram) work wonderfully.

Design

To provide the thin client with the thinnest possible footprint, the following steps are needed:

  • Eliminate the loading of the restricted modules. nVidia drivers usually aren't needed on a thin client anyway.
  • Blacklist the loading of certain other modules which won't need to be loaded.
  • Reduce the amount of video ram needed by the client. We should calculate how much is needed to do 1024x768 in 16 bit colour (reasonable for most older machines) and set the VideoRam paramter appropriately in xorg.conf. The administrator should have the ability to manually set this value up or down, depending on if his local clients have more or less memory.

  • On the server, provide some kind of nbd swap daemon so that when a thin client *does* run out of ram, it will simply get a bit slower, as opposed to hard failing because ram's been exhausted.

Implementation

  • Removing unneccessary modules and startup scripts will not only reduce memory, but will speed up the booting. This is being handled by ThinClientFasterStartup.

  • Remove the restricted modules, and the ramdisk that holds them. This will free up to 12 megabytes of ram.
  • Limit the X.org video memory to 2048 kilobytes by default. Add the appropriate shell scripting into ltsp-client-setup to read the X_VIDEORAM parameter from the lts.conf file and pre-seed the debconf value for configuring the xorg.conf file. This will allow the administrator to easily set it up or down as needed.
  • Use swap over nbd to provide a virtual memory solution. If the terminal runs out of ram, it will beging swapping over the network, and slow down considerably, but this is preferable to having the thin client crash or reboot due to memory starvation. The LTSP project has modified the nbd-swapd server to automatically create the swap file on connect if it hasn't been created already. This saves the Ubuntu server administrator the task of having to do this as a manual process. The source for ltsp-swapd can be found at:

ThinClientMemoryUsage (last edited 2009-07-24 03:12:16 by 201)