为增加查阅体验与防止后续服务器内容的更改,请直接在github观看 https://github.com/OUCvisionLab/ServerGuide , 若github网速慢也可去CSDN观看:https://blog.csdn.net/hancoder/article/details/88803079
主要内容:
20.03.08次更新内容:
!!!禁止在服务器上阅读代码与长时间修改代码,浪费资源。
注:能力比较强的可以申请使用openpai集群,服务器单机资源有限
本服务器为OUC理论组管理,供D老师和G老师的学生使用。理论上其他组也有自己的服务器,请尽量使用自己组内服务器,方便管理和调度。
IP | Port | capacity | user name | password | Note |
---|---|---|---|---|---|
备注行 | 桌面是0,ssh是1 |
注:
2.1 windows软件
电脑中搜索桌面连接。或者在微软商店里搜远程桌面,道理都是一样的。或windows+r输入mstsc
2.2 输入IP和端口
输入IP:port,如222.195.151.170:6666
端口是90XX,其他组的服务器有的是91XX是桌面端口。
2.3 输入用户名密码
session模式选择Xorg(个别机器选sesman-Xvnc),然后输入账号ouc-机器后两位id
,密码b301
2.4 登录系统后 在home目录下(/home/ouc-xx/)创建自己的文件夹,请勿随意放置个人文件
进去后,最好在桌面上备注好你的名字以及使用时间。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c0dLdNCv-1607190010260)(https://fermhan.oss-cn-qingdao.aliyuncs.com/oldGithub/20190325144734.png?token=AkTVJRoQTQFVopFyApR5WI9oEZziwdXtks5cmHnIwA%3D%3D)]
2.5 在你正式跑代码之前,请输入nvidia-smi
查看有没有其他用户在跑程序(通过红框部分看))。如果中间的显存占用率只有几十MB,那么就说明没人在跑程序。
nvidia-smi参数解释:
- Fan:显示风扇转速,数值在0到100%之间,是计算机的期望转速,如果计算机不是通过风扇冷却或者风扇坏了,显示出来就是N/A;
- Temp:显卡内部的温度,单位是摄氏度;
- Perf:表征性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能;
- Pwr:能耗表示;
- Bus-Id:涉及GPU总线的相关信息;
- Disp.A:是Display Active的意思,表示GPU的显示是否初始化;
- Memory Usage:显存的使用率;
- Volatile GPU-Util:浮动的GPU利用率;
- Compute M:计算模式;
如果发现打不开服务器的浏览器,可能是因为bug的原因,我们可以安装谷歌浏览器代替:
安装方法:去谷歌官网找安装包(下载地址在页面下方其他平台里) 或者用wget方式下载
下载后传到服务器上
然后
sudo dpkg -i 下载的包.deb
然后就可以在左上角的浏览器里找到了
nvidia-smi
输入 nvidia-smi
,此处是作用是验证没有人在使用此服务器
但要注意这里的cuda版本不准确,要用nvcc -V
查看cuda版本
如果报错
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
一种方法是重装驱动,但如果已经重装过了但是重启后又报错了,就可以使用下面的方式
# 查看之前安装的驱动版本
ls /usr/src | grep nvidia
# 比如这里我输出了
nvidia-440.31
sudo apt-get install dkms #DKMS全称是Dynamic Kernel Module Support,它可以帮我们维护内核外的这些驱动程序,在内核版本变动之后可以自动重新生成新的模块。
sudo dkms install -m nvidia -v 440.31 #440.31是安装驱动的版本
然后就可以了。
如果还不可以说明不是内核的问题,是驱动没安好,继续重装吧
环境解释:
之前为大家创建过公用的python3.6和python2.7等,但是大家好像更倾向于使用很特殊的环境。所以此处修改为创建自己虚拟环境的注意项。
虚拟环境的原因:相当于两台服务器,互相使用的python不影响,即安装模块是安装到了指定某一python上,而不是为全部python安装模块。
公共python的位置:Anaconda原有的python路径是/home/ouc/Anaconda3/python。而你创建私有的python地址是/home/Anaconda3/env/YOURNAME/python
环境变量在/.bashrc文件里,不要轻易改动。代表home目录。安装anaconda时一路默认会自动写入bashrc中。
创建于使用虚拟环境方法:
# ---|*_*|--- 查看现有环境 ---|*_*|---
conda info -e
# ---|*_*|--- 创建python环境 ---|*_*|---
conda create -n YOURENAME python=PYTHONVERSION
# 如conda create -n hanfeng python=3.6。可以指定python版本,重要的是指定python版本。名称任意,推荐自己名字。anaconda3上也可安装python2.7。创建完可在/home/Anaconda3/env/YOURNAME/python目录下找到你的python
# 如遇到权限问题,可以尝试先执行如 sudo chmod 777 /home/ouc-19/anaconda3
# ---|*_*|--- 以下两条指令都要执行一下,之前发现过不执行莫名其妙进去别人环境的问题 ---|*_*|---
source activate # 重新进入虚拟环境
conda deactivate # 退出虚拟环境
# ---|*_*|--- 激活环境 ---|*_*|---
# 创建完自己的环境后,接下来一切操作都是在【进入自己创建的环境】的基础上进行的,下面语句是进入自己环境的方式,二选一。注:若使用python,但凡打开终端,第一步都该的进入自己的环境,否则操作都不是针对自己的环境的。
source activate YOURENAME
#or
conda activate YOURENAME
-------------------------------
# ---|*_*|--- 不常用命令 ---|*_*|---
# 退出环境:
source activate # 重新进入虚拟环境
conda deactivate # 退出虚拟环境
#or#source deactivate
# ---|*_*|--- 删除虚拟环境 ---|*_*|---
conda remove -n YOURNAME --all
(hanfeng) ouc-10@ouc-10:~$ conda info -e
# conda environments:
base /home/ouc-10/anaconda3
hanfeng * /home/ouc-10/anaconda3/envs/hanfeng
(base) ouc-10@ouc-10:~$ python -V
Python 3.7.4
(base) ouc-10@ouc-10:~$ conda activate hanfeng
(hanfeng) ouc-10@ouc-10:~$ python -V
Python 3.7.4 # 还是3.7的环境,明显不是我自己的
(hanfeng) ouc-10@ouc-10:~$ which python
/home/ouc-10/anaconda3/envs/hanfeng/bin/python # 路径居然正确?
# 执行退出
(hanfeng) ouc-10@ouc-10:~$ source activate
(base) ouc-10@ouc-10:~$ conda deactivate
# 重新进入
ouc-10@ouc-10:~$ conda activate hanfeng
(hanfeng) ouc-10@ouc-10:~$ python -V # 版本正确了
Python 3.6.2 :: Continuum Analytics, Inc.
(hanfeng) ouc-10@ouc-10:~$ pip -V
pip 9.0.1 from /home/ouc-10/anaconda3/envs/hanfeng/lib/python3.6/site-packages (python 3.6)
(hanfeng) ouc-10@ouc-10:~$ pip3 -V
pip 20.2.2 from /home/ouc-10/anaconda3/lib/python3.7/site-packages/pip (python 3.7)
# 安装包
python -m pip install tensorflow-gpu
说明:请一定要使用如上的方式安装包,不要直接pip install tensorflow-gpu或者pip3 install
原因:我们可以输入which pip查看当前默认使用的pip,可以发现pip可能确实匹配到了正确的自己环境,
但pip3就不是自己的环境,所以尽量使用python -m pip install的命令。下面有更详细的说明
(hanfeng) ouc-10@ouc-10:~$ which pip
/home/ouc-10/anaconda3/envs/hanfeng/bin/pip
(hanfeng) ouc-10@ouc-10:~$ which pip3
/usr/bin/pip3
推荐离线安装。去https://pypi.org/ 下载离线包。pip install 离线包
在线安装容易失败。
# conda安装方式,必须先激活到自己创建的环境中
conda activate YOURENAME # or:source activate YOURENAME
conda install tensorflow-gpu=版本号
另外需要注意版本的关系,tf、torch与cuda版本有关,要验证自己的版本是否可用,可用如下类似的方式验证
import torch
torch.cuda.is_available() # 输出true才代表当前版本的torch能用
# false的话更改cuda版本或者torch版本
# 更改cuda的教程在末尾
# 可以取torch官网看与cuda的对应关系
https://pytorch.org/get-started/previous-versions/
conda activate YOURENAME # 或:source activate YOURENAME
python -m pip install 模块 #
# 还可以在文件中写好后,指定源路径,加速下载
python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 其中requirements.txt内容格式如下
torch==1.4.0
torchvision==0.5.0
# 如何下载离线包查看3.3.3
#下载后用pip安装,安装时候输入完python -m pip install 把文件拖进去即可,相当于要输入文件绝对路径。注意文件两侧各有一个'号,压缩包直接拖进去即可,无需解压
conda activate YOURENAME # or:source activate YOURENAME
python -m pip install FILE下载的文件
如
python -m pip install tensorflow-gpu==1.15
pip知识补充
更换pip源方式:见后文
如果你要使用pip,务必先激活到自己的虚拟环境conda activate YOURENAME
,然后使用python -m pip install XXX
的形式代替pip install xxx
的形式。因为直接输入的pip指向的并不是你的python,而是linux里的python。想要一探究竟可以打开/usr/local/bin下的pip文件看其原理
尤其是像pytorch这种包,conda命令经常安不上,使用pip命令的时候一定要使用’python -m’方式。
pip3和pip是两个文件
(hanfeng) ouc-10@ouc-10:~$ which python
/home/ouc-10/anaconda3/envs/hanfeng/bin/python
# 使用`pip3 -V`或`pip -V`可以查看这两个文件指向哪里,即使用pip时默认为哪个python安装包。如图,分别指向的python是系统的python和anaconda的其中一个python。
(hanfeng) ouc-10@ouc-10:~$ pip -V
pip 9.0.1 from /home/ouc-10/anaconda3/envs/hanfeng/lib/python3.6/site-packages (python 3.6)
(hanfeng) ouc-10@ouc-10:~$ pip3 -V
pip 20.2.2 from /home/ouc-10/anaconda3/lib/python3.7/site-packages/pip (python 3.7)
# 使用`which pip3`或`which pip`可以查看默认的pip3和pip在哪里 #如下,pip3在/usr/bin目录下
(hanfeng) ouc-10@ouc-10:~$ which pip
/home/ouc-10/anaconda3/envs/hanfeng/bin/pip
(hanfeng) ouc-10@ouc-10:~$ which pip3
/usr/bin/pip3
输入gedit /usr/local/pip3
可以打开pip3修改第一行,修改为自己python的路径以后pip3以后默认的安装的就是你的python了。
但是上面只是介绍原理,实例使用中最实用的还是直接使用python -m pip install 在线/离线包
,相当于指定了为哪个python安装包。
conda activate YOURENAME # or:source activate YOURENAME
python -m pip install FILE下载的文件(在线离线均可)
例:pytorch,官网https://pytorch.org/ 给出的pip安装方式显示的网址即是包的下载地址,可以去掉pip复制网址到浏览器下载。如下图选中部分即下载地址。
注:经测试cuda-9.0官网没给出下载pytorch地址,第三方给的下载文件https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/ 测试时有次未安装成功,可以自己尝试。
archive下是anaconda安装包
/pkgs/free/linux-64/下是如tensorflow等安装包
/cloud/pytorch/linux-64/下是torch和torchvision安装包
方式三:anaconda官网给的离线包:https://repo.continuum.io/pkgs/free/linux-64/
方式四:pip地址:https://pypi.org/
#以numpy为例,下载下来离线包之后
python -m pip install ./numpy-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl
linux软件源:https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b11JFiKUi
#输入gedit ~/.condarc复制以下内容后保存:
channels:
- https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
- https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- defaults
show_channel_urls: true
# 临时更换:-i后面跟上源地址
pip install pythonModuleName -i https://mirrors.aliyun.com/pypi/simple
#永久更改
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
或者采用如下方式:
#创建目录
mkdir -p ~/.pip
#修改配置文件
vim ~/.pip/pip.conf
#写入以下内容并保存
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
ps:你也可以使用navigator界面的方式进行上面创建虚拟环境安装包等操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rnh1C0yw-1607190010268)(https://fermhan.oss-cn-qingdao.aliyuncs.com/oldGithub/20190325170518.jpg?token=AkTVJfCdox_AKmenkZWtbZejKnxxdoVMks5cmJoSwA%3D%3D)]
若有特殊情况需要安装Anaconda2(Anaconda3里有python2.7),可以使用如下方法:
Anaconda2 will now be installed into this location:home/xx/anaconda2
-Press ENTER to confirm the location
-Press CTRL-C to abort the installation
-Or specify a different location below
这时不要选择回车,否则会覆盖原来的Anaconda3的环境变量。自己输入一个home下的路径即可
Do you with the installer to prepend the Anaconda2 install location to PATH in your /home/ouc/.bashrc ?[yes|no]
要选择no,否则会覆盖原来的Anaconda环境变量,使别人无法正常使用
我们在ssh上python XXX.py
开始训练任务后,如果关闭了ssh窗口,任务就会中断,我们可以使用如下两种方式之一进行后台训练
nohup python train.py 参数 &
:即以nohub开头,以&结尾。默认将当前的输出打印在当前目录的nohup.out文件里
场景:比如我们vi test.txt
编辑到一半的时候要回来了不得不关机,但我们明天重开机编辑的内容就撤销了,我们可以使用如下的方式进行临时保存
# 安装screen
sudo apt install screen
# 在要执行的任务前加上screen
screen python aaa.py
# 按Ctrl+a,按完后再按d,就退出了训练页面,但任务还在进行
# 重新连接会话
#screen -ls找到screen的任务
screen -ls
There is a screen on:
16582.pts-1.tivf06 (Detached)
1 Socket in /tmp/screens/S-root.
# 连接screen的任务
screen -r 16582
# 又能看到训练页面了
4.2 nuhup … &
原来我们推荐xftp和xshell作为ssh工具。现在我们推荐MobaXterm作为ssh工具。Xterm可以实现ssh、xftp等功能,直接文件拖拽互传,对新手友好,界面优美。
下载地址:https://mobaxterm.mobatek.net/download-home-edition.html
端口是91XX,而不是90XX,也有的服务器这两个端口是反的,
pwd #打印当前目录
cd 目录 #转换目录,分为相对路径和绝对路径,第一位是/的是绝对路径
wget www.链接 #下载文件
ls #查看当前目录文件
mkdir #创建目录
vim #编辑文件
# vim分为命令模式,插入模式和底线模式。了解前两个即可
# 刚进去的适合是命令模式,此时只能查看文件,按h左j下k上l右;按i进入插入模式编辑文件
# 编辑好后按Esc,然后输入:wq代表保存退出,q!代表不保存退出
# 补充:命令模式下:u撤销 Ctrl+r取消撤销 x删除当前光标字符 X是向前删 x是向后删
# 其他命令自己学习
sudo apt install lrzsz
rz 上传文件 # 需要先安装sudo apt install lrzsz
sz下载文件
若链接ssh不成功,可先安装:
如果ubuntu里没有ssh可以通过如下命令安装
sudo apt-get install openssh-server
,在ubuntu端安装ssh。
输入"sudo ps -e |grep ssh"–>回车–>有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"–>回车–>ssh服务就会启动。注:ssh也可在安装显卡驱动时使用,无需跑去机房安装。
我们通过zerotier这个软件映射校园网到校园外网(家中局域网)
操作步骤:
下载Windows版本的Zerotier:MSI Installer (x86/x64)
(为方便,临时提供百度云方式下载连接:
https://pan.baidu.com/s/1eiJy2A5PxT-o0yyhnR3dWA 提取码:f58H )。(百度云链接失效的话可以去官网下载:https://www.zerotier.com/download/ 。只是加入网络的话不需要注册账号)
安装好后,在Zerotier软件界面(或者在任务栏小图标上右键),点击join Netwok,输入ID号:a09acf023363b091。需要联系后台管理员通过才能通过授权(请主动联系一下,要不然不知道请求访问的ip具体是谁,也不能及时通过请求)。
IP:访问新的指定的服务器IP(与校园网IP不一样了)。新的IP地址为:192.168.192.两位IP号
,比如你原来的服务器是ouc-28,那么服务器新的IP即:192.168.192.28
。zerotier的ip全是这个规则
端口:因为IP已改变,原来映射的端口也就无需使用了。远程桌面的端口号是3389,SSH/XFTP的端口号是22。账号密码不变
192.168.192.10:3389
(起作用,但是有些地区被墙的原因,网速慢会连接不上)192.168.192.10:22
延迟问题不太方便解决,有的地区连接就很稳定,有的地区可能只能连ssh体会一下龟速网络,所以请学习一下ssh使用。
-----------------分割线----------------
管理员分配zerotier IP给新的服务器:
百度如何获取Network ID,我们之前已经创建过了,所以无需再次创建
在服务器上:
# 安装zerotier
curl -s https://install.zerotier.com | sudo bash
# 加入指定的"局域网"
sudo zerotier-cli join a09acf023363b091
# 在zerotier官网登录创建该"局域网"ID的用户,允许上一步的服务器加入网络,在列表前面的勾选框里勾选新加入的服务器,然后就可以通过Managed IPs访问了
#尝试了moon。好像也没什么效果,可能有错误
# zerotier-cli orbit 11bdb40555 11bdb40555
#ssh -p 9012 [email protected]
#ssh -p 9011 [email protected]
# ssh -p 9128 [email protected]
首先说明:非常不建议自己重装系统。即使要重装系统,也要负责地把需要的各项都装好,不给别人添麻烦。
重装系统后需要把第6部分的内容全部配置好
如果真有需要安装系统,比较推荐安装ubuntu16,因为ubuntu16对远程桌面支持比较好。要保证用户名密码与原来设定一致。
重新配置IP以便可以远程连接 https://blog.csdn.net/hancoder/article/details/102881903
参考链接 https://blog.csdn.net/hancoder/article/details/86634415
一般只需要进行:
apt-get install openssh-server
service ssh restart
特殊情况可以修改文件:
vim /etc/ssh/sshd_config
将PermitRootLoginwithout-password注释,
添加一行: PermitRootLoginyes
还需要安装anaconda
因为teamviewer总会出现商业版问题,所以无奈选择远程连接的方式,如果你使用时间较长,可以试着连teamviewer使用。
因为ubuntu不好实现远程连接,必须通过安装小老鼠界面间接控制ubuntu。ubuntu16有很好的有解决方案(无奈当初别人装的是18系统),而ubuntu18因为版本原因远程桌面的选择很少。所以尽管小老鼠界面不美观,但还得接着使用。
ubuntu18配置远程参考此链接的第二个方法https://blog.csdn.net/star2523/article/details/81152890
在ubuntu16下可能存在完美的解决方式请参考:https://blog.csdn.net/qq_37674858/article/details/80931254 , https://www.cnblogs.com/xuliangxing/p/7642650.html
原来服务器配置人员的博客:https://blog.csdn.net/zhouxiaowei1120/article/details/80872919
注:安桌面的
echo xfce4-session >~/.xsession
命令是向home目录的.xsession
文件末尾写入xfce4-session
~/.bashrc