"Victor Sien" <[EMAIL PROTECTED]> writes:

>  
> Thanks to all excellent comments, I appreciate it... 
>  
> orlando put it succintly - we're looking at linux as a platform for a
> specific application, so desktop matters or interoperability with other OS is
> not really important in this case.  i would say it's arguments that give 
> reason
> to believe the app can be made to run better in linux than windows. the main
> issue we see now is scalability; it looks like we have seen the limits of how
> much transactions the application (as is it written now) is capable of 
> handling
> per box. to scale, we've been adding more and more boxes. with demand growing,
> i find it insane to add more and more instances of the apps at the rate we're
> doing now. before long, it will become a supportability issue, not of the app,
> but of the sheer amount of OS instances and hardware the NOC is supporting. 
> and
> yes, rise in data center power cost is something not hard to notice recently.
>  
> we started with "what ifs". what if it's linux, will it scale better? of 
> course
> it's highly dependent on the application code but granting all else equal, is
> there something in linux kernel that can help the app run better that just 
> cant
> be easily achieved under windows?


Off the top of my head (take with loads of salt):

 - A Linux server usually runs headless, so resources do not go to
   maintaining a GUI. Not so with Windows Server 2003, which still runs
   a GUI subsystem even as a server;

 - Consequently, managing a Linux server vis-a-vis a Windows server is
   easily automated -- the environment under Linux (Unix in general) is
   easier to script, etc. You'll have to write a custom tool under
   Windows to do a lot of things that you could do under *nix with just
   the shell -- unless you also install Cygwin on the Windows box;

> mindset.  so when Michael said we have to look at  the speed increases we will
> get if we move over to Linux, i couldnt agree more.  it would be nice to hear
> comments from people who have development experience on linux/windows. looking
> at profiler data, for example, the cpu cost of context switches on this
> application is high so if that's better by say 20% in linux, that will be a
> great deal of scalability for us. we're looking at things why linux can be
> better along that nature.

Is the application multi-process (i.e. the application consists of
multiple coordinating independent processes, and not threads which have
shared state)? If it is, Windows pays a heavy context switch penalty for
switching between processes as the kernel is more geared towards
thread-based programming; conversely, *nix has been historically geared
towards multiple coordinating processes, so fork() is cheap and
switching between processes is also cheap.


> the development team's very good at what they do (c++), but for historical
> reasons, they develop on windows. needless to say, they're very familiar
> with making their product work well within the windows framework. moving to
> linux is no way going to be easy at this stage but it will be done if there's
> reason to. my end goal for this intiative is to obtain funding to hire a
> software engineer to write one component of the application on linux, then we
> can do tests against its windows cousin, and from there, we can make 
> go-forward
> plans. why do missions like this fall on new joiners? ;)   

I think you'll have to first dig through the app's codebase and
identify:

 - What Windows features/API is your app depending on? This will help
   both in porting the app later on, as well as identifying what
   equivalent features to research on Linux. For example, does the app
   depend on the Microsoft ATL? Can the app be rewritten to use, say,
   the Boost template library? Does your app use COM+ as a way to
   componetize its operations?

 - What other features does your app use in an auxilliary role? For
   example, does it use the Task Scheduler API to fire off period tasks
   such as log rotation or backup? Does the server administrator use
   such tools as the Task Scheduler? What Linux equivalents are there
   (cron(8) and at(1) comes to mind).

HTH
-- 
JM Ibanez
Software Architect
Orange & Bronze Software Labs, Ltd. Co.

[EMAIL PROTECTED]
http://software.orangeandbronze.com/
_________________________________________________
Philippine Linux Users' Group (PLUG) Mailing List
[email protected] (#PLUG @ irc.free.net.ph)
Read the Guidelines: http://linux.org.ph/lists
Searchable Archives: http://archives.free.net.ph

Reply via email to