We are using SSH (with X forwarding) to remotely start an application from different machines. This works all fine, but we are experiencing high CPU load on the server when many clients are using this mechanism.

Is it in any way possible to start an application locally, but make it behave as if it was started on the remote machine?

The application does need access to:

  • The remote file system
  • The remote network (local and non-local DBUS etc.)
  • 1
    "Is it in any way possible to start an application locally, but make it behave as if it was started on the remote machine?" - No; That would just be running an application installed on the client machine. – Ramhound Jul 26 '17 at 13:09
  • Nah, not possible. – simlev Jul 26 '17 at 13:10
  • Well for remote file system you can consider mounting a NFS/CIFS share (or even SFTP with fuse). For accessing the remote network you can use a VPN or ssh (port forwards/SOCKS). With DBus it's harder: freedesktop.org/wiki/Software/DBusRemote – Nazar554 Jul 26 '17 at 13:28
  • Thanks Nazar, this sounds like an approach for some cases. Unfortunately we require the exact same file paths as on the remote, so mounting is not an option. I guess we will need to modify our application to be more flexible with the execution environment. – user3726374 Jul 26 '17 at 13:52

The application has to be somewhere. You decide whether that is on the server or the application. As for "behave as if it was started on the remote machine", what exactly do you mean by that? Just accessing files on the remote machine, or using the remote machine's hardware? Basically, if this end result is desired, the ideal solution is that the program supports such a feature. There are many programs that do support this concept (in one way or another). Clarifying better, what you want to have happen, might lead to a more detailed solution that provides you with more specific details on accomplishing just what you want.

Since it sounds like you're trying to free up CPU server, I would say that lots of applications run the CPU instructions on the clients, and store data on the server. That is often done by using SQL over a network, or having clients access a data file that is located in a folder that is shared over the network. Whether either of these ideas are feasible (typically only one of those ideas is an option, if either of them are) often depends on the software being used.

| improve this answer | |
  • I edited the question and wrote which parts of the remote server need to be accessed by the application. Yes, basically an application level client/server architecture would be desirable, but this application does not support that. – user3726374 Jul 26 '17 at 13:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.