服务器运维(?)的相关指令与解决方案

        本文主要记录日常在服务器运维时遇到的一些问题,操作以及相关解决方案,这些方案没有先后顺序。本文仅做记录使用,不做任何回复。

目录

一、将用户加入组或移出组

二、在服务器上安装Conda环境

三、Nvidia-smi界面详解

四、快速创建一个账户

五、如何处理空占卡

六、如何批量杀掉某个用户的指定进程

七、如何批量化杀掉指定显卡上的进程

八、查看磁盘空间的占用情况

九、手动清除服务器的缓存文件

十、修改用户密码以及删除某用户

十一、如果服务器挂了(正面闪黄灯)

十二、挂载硬盘

十三、固定服务器IP为静态IP

十四、服务器上的mysql服务无法启动

十五、将服务器上的Miniconda打包为Docke

十六、Conda打包环境给另一个服务器

十七、启用一个端口


一、将用户加入组或移出组

方法一:

$ sudo cat etc/sudoers

查看sudoers文件中的信息,参照root这一行重新写一行一样的就可以将某用户升级为超级用户。

方法二:

# 查看xxx用户所在组
$ groups xxx

# 查看sudo组中所包含的用户
$ getent group sudo

# 将xxx用户加入sudo组中
$ sudo usermod -aG sudo xxx

# 将xxx用户移出sudo组
$ sudo deluser xxx sudo

二、在服务器上安装Conda环境

  • 安装Miniconda,参照官网操作:Miniconda — Anaconda documentation
  • 对于一个Conda虚拟环境,如
    # Conda查看当前拥有的环境
    $ conda env list
    
    # Conda创建名为kk的虚拟环境并指定Python版本
    $ conda create -n kk python=3.9
    
    # Conda激活一个环境
    $ conda activate kk
    
    # Conda删除一个环境
    $ conda env remove -n kk
  • 对于如何将kk固定为默认激活的环境
    # 切换到默认Home目录
    $ cd ~
    
    # 修改.bashrc文件
    $ vim .bashrc

三、Nvidia-smi界面详解

  • 第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的,但机房风扇转的呼呼响)。
  • 第二栏的Temp:是温度,单位摄氏度。
  • 第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
  • 第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。(重点观察)
  • 第五栏的Bus-Id是涉及GPU总线的东西。
  • 第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
  • 第五第六栏下方的Memory Usage是显存使用率。(重点观察)
  • 第七栏是浮动的GPU利用率。(重点观察)
  • 第八栏上方是关于ECC的东西。
  • 第八栏下方Compute M是计算模式。

显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。跑caffe代码的时候显存占得少,GPU占得多,跑TensorFlow代码的时候,显存占得多,GPU占得少。

四、快速创建一个账户

        创建一个createUserPub.sh文件用于快速执行创建账户的工作。

# /public/$name是用户登陆以后所在的主目录所在未知
echo "输入要创建的用户名:"

read name
sudo useradd -d /public/$name -m -s /bin/bash $name
echo "输入新建用户密码:"
sudo passwd $name
sudo chown $name -R /public/$name
sudo chown -R $name:$name /public/$name
echo "分配主目录"
sudo chmod 777 /public/$name
echo "权限777"
echo "完成" 

五、如何处理空占卡

  • 输入如下命令动态观察当前GPU的使用状态:
$ watch nvidia-smi
  • 如果一张卡长时间处于显存高额占用但是功率为0%的情况,同时该卡的设备温度很低,功率也很低,则说明该卡处于空占状态。
  • 采用如下指令查看当前显卡下占用GPU资源的所有PID对应的用户的情况:
# 首先通过如下指令查看输出是否对应于正确的PID,如果不正确则需要手动调整一些参数。
$ nvidia-smi | awk '$3 ~/[0-9]+/{if((NR>30)) {print $3}}'
or
$ nvidia-smi | awk '$5 ~/[0-9]+/{if((NR>40)) {print $5}}'

# 输出正确以后拼接上ps命令查看对应PID的用户和相关信息
$ nvidia-smi | awk '$3 ~/[0-9]+/{if((NR>30)) {print $3}}' | xargs ps u
  • 通过程序的启动时间可以大致判断是否可以直接Kill,当然最好和该用户进行沟通
# 杀掉PID为2233的进程
$ sudo kill -9 2233
  • 有些僵尸进程不会直接显示在nvidia-smi的界面上,但是显存依旧存在大量占用,此时按如下操作:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值