linux服务器(gpu)注意事项

连接(vscode)

1下载插件:
在这里插入图片描述
2 点击加号
在这里插入图片描述
3 输入服务器地址以及用户名
在这里插入图片描述
4 点击加号,进入该服务器
在这里插入图片描述
5 输入密码
在这里插入图片描述
6 openfolder,定位文件夹,左侧可视化窗口
在这里插入图片描述

连接(pycharm)

pycharm的连接因为写时间比较久远加上当时非常小白,所以叙述可能会有些混乱…
简单来说就是连接本地目录和服务器目录+选择编译器(就是环境),pycharm不像vscode是直接可视化服务器内容,而是相当于连接了本地和服务器,所以比vscode多了一个从本地上传到服务器的步骤。
1、在linux中运行py文件:
python name.py
2、pycharm配置虚拟编译器:
1)tool-deployment-configuration
在这里插入图片描述

+sftp
在这里插入图片描述
输入该服务器名称(自定义)
在这里插入图片描述
connection-configuration(可以用test connection试试)
在这里插入图片描述
mappings:
localpath与deploymentpath:分别为本地项目文件目录和服务器中项目文件
在这里插入图片描述
2)file-settings-project-python interpreter-add-ssh interpreter
在这里插入图片描述

next-interpreter写python解释器的位置
(linux中进入python,
import sys
sys.executable)
一般bin下放可执行文件
在这里插入图片描述

file-settings-interpreter-show all:
在这里插入图片描述

点击笔修改为ssh(原本是configuration)
在这里插入图片描述
注意,解释器连着服务器时是不能运行本地文件的,否则报错:
在这里插入图片描述

要pycharm deployment同步本地项目到服务器
在这里插入图片描述

deployment path要写好,然后右键project,deployment-up to xxx

在这里插入图片描述

upload 成功

deployment不要设置太多路径,可能会冲突

pycharm远程连接服务器编译错误: No such file or directory
在这里插入图片描述

原因:
1、可能是本地文件没有上传到服务器;解决方法:deployment-mapping建立好连接然后上传;
2、setting-interpreter里的mapping没设置
在这里插入图片描述

这样就算设置完成了,点ok后运行成功

tmux:terminal分屏

可以通过config文件修改配置
(这里将默认ctrlb改成了ctrla)
终端里先ssh -name@ip,登录
tmux ls 查看有哪些窗口
输入tumx进入tmux页面
tmux attach -t number:进入indx为number的窗口
ctrla+| 左右分屏
ctrla±上下分屏
ctrla+c开新窗口
ctrla+q关闭分屏/窗口
ctrla+n下个窗口/ctrlc+N上个窗口
ctrl+d退出但不关闭
ctrla+r刷新
ctrla+z 最大化pannel
tmux attach -t 编号 -d 进入该session并强行退出其他session
ctrla m关闭鼠标
ctrla M打开鼠标

gpu命令

查看cuda版本:vvcc --version

watch -n 0.1 -d nvidia-smi 查看动态内存
watch -n 0.1 --color gpustat --c 查看动态内存(小视图)

nvidia-smi
查看静态内存

释放gpu内存(程序运行结束后仍显示gpu内存被占用):
fuser -v /dev/nvidia* #查找占用GPU资源的PID
kill -9 pid

使用指定gpu:
CUDA_VISIBLE_DEVICES=1 python my_script.py

os.environ[‘CUDA_VISIBLE_DEVICES’] = ‘3,4,5,6,7’(代码里写)

强行杀死进程:当程序卡住/停止但gpu内存没释放:
gpustat -p 查看进程pid
kill -9 pid

linux命令

~ 代表/home/用户名目录
看用户名目录下的隐藏文件:(例如bashrc):~/.bashrc
ls -a看隐藏文件

#未实现
恢复被删除的文件
这里

文件处理

删除文件夹:
rm -rf 目录名
不能在目录a下删除目录a

查看文件数量:
ll | grep -c “^-”
ll | grep -c “^d”

移动文件:
https://blog.csdn.net/u010579482/article/details/72081996
mv sourcePath destPath
例入,将94…文件夹中的内容放到PatchAttack中:
mv /home/lyli/codeRepete/PatchAttack/942d3a0ac09ec9e5eb3a/* /home/lyli/codeRepete/PatchAttack

mv同样可以用作文件重命名:mv path/before.suffix path/after.suffix

下载并解压文件:
使用wget -O rename url 下载
解压:(ref:https://blog.csdn.net/showgea/article/details/80596197)
ref:https://blog.csdn.net/showgea/article/details/80596197
解压大文件(超过2个g)
7z x xxx.zip

本地与服务器文件传输

本地上传文件:
scp /path/filename username@servername:/path
本地上传目录:
scp -r local_dir username@servername:remote_dir
服务器下载文件:
scp username@servername:/path/filename /path/filename(本地目录)
服务器下载目录:
scp -r username@servername:/path(远程目录) /path(本地目录)

查看空间占用

磁盘清理
https://docs.conda.io/projects/conda/en/4.6.0/commands/clean.html
conda clean -p
conda clean -t

查看硬盘的空间占用
du -lh --max-depth=1 查看当前目录的子目录分别占用
du -sh 仅查看当前目录
df -hl path 查看磁盘空间占用/可用空间
在这里插入图片描述

查看剩余内存(区分内存和硬盘!!!)
free -m 单位mb
free -g 单位gb

vim

vim 文件名 进入vim
在这里插入图片描述

:q退出vim
:wq保存并退出

在主页面下输入vim ~/.vimrc (在主目录下创建vimrc文件)
在.vimrc里进行配置

输入 /关键词 即可搜索关键词,按enter+n为查找下一个
选择复制:ctrl+shift+光标
粘贴:shift+insert

如何优雅地在远程服务器上debug

ref:https://cloud.tencent.com/developer/article/1840922

命令行方法:ipdb

pip install ipdb
python -m ipdb xxx.py
h(help):帮助命令
s(step into):进入函数内部
n(next):执行下一行
b(break): b line_number 打断点
cl(clear): 清除断点
c(continue): 一直执行到断点
r(return): 从当前函数返回
j(jump): j line_number,跳过代码片段,直接执行指定行号所在的代码
l(list): 列出上下文代码
a(argument): 列出传入函数所有的参数值
p/pp: print 和 pretty print 打印出变量值
r(restart): 重启调试器
q(quit): 推出调试,清除所有信息

GUI方法

参考ref连接

putty连接

不断线的方法:

环境相关

3090与cuDA
查看服务器cuda:nvcc --version
注意服务器cuda版本最好和torch的cuda版本匹配,不然会出现model.cuda()执行不了的问题

conda info -e :查看所有conda环境
python -V 查看python版本
查看torch,cuda 及tf版本:
python

import torch
import tensorflow as tf
torch.__version__
tf.__version__
torch.version.cuda

或者 pip list grep | torch

查看某个路径下带关键词:(例:看该目录下的pip)
ls ~/anaconda3/envs/tf115/bin/ | grep pip

which pip 看pip的路径(其他命令同理)
如果pip路径不对(不在本环境路径下,可能导致当前channel没有要下载的包),运行
export PATH="/home/用户名/anaconda3/bin:$PATH",然后重启(换base再换回当前环境)检查which pip
或者:conda install -c conda-forge 包名,这样直接从conda forge下载

tail -30 ~/.bashrc 看隐藏文件bashrc的后30行
echo $PATH 看环境变量(冒号分割)

jupyter问题

jupyter 配置文件: vim /home/lyli/.jupyter/jupyter_notebook_config.py
或:~/.jupyter/jupyter_notebook_config.py
更改或添加kernal:参考这里
pip install ipykernel
python -m ipykernel install --name your_invironment_name

我的环境:

以下仅为个人创建的环境记录
torch1:python3.8.8 ;torch 1.11.0+cu102; tf:1.15.0
test1: python 3.8.10 ; torch 1.11.0+cu102; tf:1.15.5
tf115:python 3.6.9 ; torch 1.10.2 ;tf:1.15.0
注意3090和低版本tf不兼容,这个环境是tf1.15特殊维护的,需要在命令行最前面加入
TF_ENABLE_DEPRECATION_WARNINGS=1
torch1_0: python 3.7.11; torch 1.0.1 ;tf:null
torchEnv: python 3.8.13; torch 1.11.0+cu102; tf: 1.15.5
以上cuda都是10.2
p_3.6: python 3.6.13 ; torch 1.10.2 cuda:11.1

环境变量

PYTHONPATH:
python import 包时从此环境变量里找, PYTHONPATH中的路径优先度高于默认搜索路径。默认搜索路径如下:

$path_prefix/lib(标准库路径,服务器中是user)
$path_prefix/lib/pythonX.Y/site-packages(三方库路径,X.Y 是对应 Python 的主次版本号,如 3.7, 2.6,也就是pip的路径(pip list - pip show 随便一个包,可以看到pip路径))
当前工作目录(pwd命令的返回结果)
ref:https://frostming.com/2019/03-13/where-do-your-packages-go/

应用:如果不想pip install包(比如看到包里setup源码中有强制升级的部分,需要手动注释掉,则将该仓库 git clone 到服务器里,然后将下载地址加到PYTHONPATH里:
export PYTHONPATH="路径:$PYTHONPATH"
PATH:
运行命令的时候,系统从此环境变量里找(即在conda 环境a中 which pip 出来的路径不是a的时候要将anaconda bin的路径export到PATH里的原因)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值