-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path41525165.1f7e916e.js
More file actions
1 lines (1 loc) · 9.21 KB
/
41525165.1f7e916e.js
File metadata and controls
1 lines (1 loc) · 9.21 KB
1
(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{112:function(e,t,n){"use strict";n.r(t),n.d(t,"frontMatter",(function(){return a})),n.d(t,"metadata",(function(){return c})),n.d(t,"rightToc",(function(){return l})),n.d(t,"default",(function(){return p}));var r=n(2),o=n(6),i=(n(0),n(125)),a={id:"remote",title:"Remote Projects"},c={id:"remote",isDocsHomePage:!1,title:"Remote Projects",description:"The current support for remote projects is meant for advanced users. We are",source:"@site/docs/remote.md",permalink:"/docs/remote",editUrl:"https://github.com/skylineprof/skyline/edit/master/website/docs/remote.md",sidebar:"sidebar",previous:{title:"Providers in Detail",permalink:"/docs/providers"},next:{title:"Standalone Profiling",permalink:"/docs/standalone"}},l=[{value:"Terminology",id:"terminology",children:[]},{value:"Prerequisites",id:"prerequisites",children:[]},{value:"Starting a Remote Profiling Session",id:"starting-a-remote-profiling-session",children:[{value:"Connecting to the Server Machine",id:"connecting-to-the-server-machine",children:[]},{value:"Starting the Skyline Profiler",id:"starting-the-skyline-profiler",children:[]},{value:"Starting the Skyline Plugin",id:"starting-the-skyline-plugin",children:[]}]}],s={rightToc:l};function p(e){var t=e.components,n=Object(o.a)(e,["components"]);return Object(i.b)("wrapper",Object(r.a)({},s,n,{components:t,mdxType:"MDXLayout"}),Object(i.b)("div",{className:"admonition admonition-caution alert alert--warning"},Object(i.b)("div",Object(r.a)({parentName:"div"},{className:"admonition-heading"}),Object(i.b)("h5",{parentName:"div"},Object(i.b)("span",Object(r.a)({parentName:"h5"},{className:"admonition-icon"}),Object(i.b)("svg",Object(r.a)({parentName:"span"},{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16"}),Object(i.b)("path",Object(r.a)({parentName:"svg"},{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})))),"Early Support for Remote Projects")),Object(i.b)("div",Object(r.a)({parentName:"div"},{className:"admonition-content"}),Object(i.b)("p",{parentName:"div"},"The current support for remote projects is meant for ",Object(i.b)("em",{parentName:"p"},"advanced users"),". We are\nworking on a more user-friendly process for setting up a remote project that we\nwill ship in a future release."))),Object(i.b)("h2",{id:"terminology"},"Terminology"),Object(i.b)("ul",null,Object(i.b)("li",{parentName:"ul"},Object(i.b)("strong",{parentName:"li"},"Client:")," The local machine where you run Atom and the Skyline plugin."),Object(i.b)("li",{parentName:"ul"},Object(i.b)("strong",{parentName:"li"},"Server:")," The remote machine where you want to run the Skyline profiler.")),Object(i.b)("h2",{id:"prerequisites"},"Prerequisites"),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"SSH Access."),"\nAt a minimum, you need SSH access to a server machine that allows SSH\ntunnelling. If the server machine exposes ports then it does not need to\nsupport SSH tunnelling."),Object(i.b)("p",null,Object(i.b)("strong",{parentName:"p"},"Remote File System."),"\nSkyline does not provide a remote file system. As a result, to use Skyline for\na remote project, your project files must be stored in a file system that can\nbe accessed by both the client and server machines. Usually this is done by (i)\nstoring your project files in a networked file system (e.g.,\n",Object(i.b)("a",Object(r.a)({parentName:"p"},{href:"https://en.wikipedia.org/wiki/Network_File_System"}),"NFS"),"), or (ii) mounting\nyour project, which is stored on the server, onto your local machine using\n",Object(i.b)("a",Object(r.a)({parentName:"p"},{href:"https://github.com/libfuse/sshfs"}),"sshfs"),"."),Object(i.b)("h2",{id:"starting-a-remote-profiling-session"},"Starting a Remote Profiling Session"),Object(i.b)("h3",{id:"connecting-to-the-server-machine"},"Connecting to the Server Machine"),Object(i.b)("p",null,"The Skyline plugin and profiler communicate over a TCP socket. As a result, we\nneed to ensure there is a port that they can communicate over. We recommend\nusing an SSH tunnel to forward ports on your client machine to the server\nmachine. To set up a tunnel, run:"),Object(i.b)("pre",null,Object(i.b)("code",Object(r.a)({parentName:"pre"},{className:"language-bash"}),"ssh -L 60210:localhost:60210 <server hostname>\n")),Object(i.b)("p",null,"Skyline uses port 60210 by default, so we recommend forwarding that port. If\nyour server exposes ports, you do not need to set up an SSH tunnel and can use\none of the open ports instead."),Object(i.b)("h3",{id:"starting-the-skyline-profiler"},"Starting the Skyline Profiler"),Object(i.b)("p",null,"After connecting to the server, you can start the Skyline profiler by\nnavigating to your project root and running the ",Object(i.b)("inlineCode",{parentName:"p"},"skyline interactive")," command\nas usual, but with the ",Object(i.b)("inlineCode",{parentName:"p"},"--skip-atom")," flag added. This flag prevents Skyline\nfrom attempting to launch Atom (since you will be running it on your client\nmachine)."),Object(i.b)("pre",null,Object(i.b)("code",Object(r.a)({parentName:"pre"},{className:"language-bash"}),"cd ~/your/project/root\nskyline interactive your_entry_point.py --skip-atom\n")),Object(i.b)("p",null,"If you want to use a different port, you can use the ",Object(i.b)("inlineCode",{parentName:"p"},"--port")," flag to tell the\nprofiler to listen on a different port."),Object(i.b)("pre",null,Object(i.b)("code",Object(r.a)({parentName:"pre"},{className:"language-bash"}),"skyline interactive your_entry_point.py --skip-atom --port 1337\n")),Object(i.b)("h3",{id:"starting-the-skyline-plugin"},"Starting the Skyline Plugin"),Object(i.b)("p",null,"Launch Atom and open Skyline by running the ",Object(i.b)("inlineCode",{parentName:"p"},"Skyline:Toggle")," command in the\ncommand palette (Ctrl-Shift-P on Ubuntu, \u2318-Shift-P on macOS). You can also\nlaunch Skyline using the Atom menus: Packages > Skyline > Show/Hide Skyline."),Object(i.b)("p",null,"Now, ",Object(i.b)("em",{parentName:"p"},"instead")," of hitting Connect, click the button next to it with a gear\nicon. Three text fields should appear. If you are using an SSH tunnel to\nconnect to the Skyline profiler, you do not need to change the host and port\n(the first two text boxes). If you are connecting to a custom port on the\nserver machine, enter the correct host and port."),Object(i.b)("p",null,"Next, you need to specify the absolute path to the project root on the client\nmachine. A quick way of doing this is to open a project file in Atom and then\nclick the button next to the text field. Skyline will fill in the project root\nusing the path to that file. You can then edit the path to correct it if\nneeded."),Object(i.b)("p",null,"Once all three fields have been filled in, you can click the Connect button to\nstart your profiling session. If everything was set up correctly, you will be\nable to use Skyline with your remote project!"))}p.isMDXComponent=!0},125:function(e,t,n){"use strict";n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return h}));var r=n(0),o=n.n(r);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=o.a.createContext({}),p=function(e){var t=o.a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},u=function(e){var t=p(e.components);return o.a.createElement(s.Provider,{value:t},e.children)},b={inlineCode:"code",wrapper:function(e){var t=e.children;return o.a.createElement(o.a.Fragment,{},t)}},m=o.a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,a=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=r,h=u["".concat(a,".").concat(m)]||u[m]||b[m]||i;return n?o.a.createElement(h,c(c({ref:t},s),{},{components:n})):o.a.createElement(h,c({ref:t},s))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=m;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:r,a[1]=c;for(var s=2;s<i;s++)a[s]=n[s];return o.a.createElement.apply(null,a)}return o.a.createElement.apply(null,n)}m.displayName="MDXCreateElement"}}]);