Skip to main content

Linux

清空swap内存

某次分布式训练程序运行很慢而且会报错 torch.distributed.elastic.multiprocessing.errors.childFailedError, 网上说是子进程遇到资源不足的问题报错,观察内存发现swap异常被占满:

alt text

分析发现程序占用内存过大导致,修改完程序后清空swap内存:

# root
swapoff -a
swapon -a

删除一个txt文件的每行的第一个0

sed 是一个流编辑器,适合处理文本行的修改,如果不想生成新文件,可以用 sed -i:

sed 's/^0//' input.txt > output.txt
sed -i 's/^0//' input.txt

删除监听在某端口的所有程序

kill $(lsof -t -i:29502 -a -u hh)

删除某个用户的所有python程序

killall -u username python

scp

# 从服务器下载整个目录
scp -r username@servername:remote_dir/ /tmp/local_dir
# 上传目录到服务器
scp -r /tmp/local_dir username@servername:remote_dir

bash: /usr/bin/cp: Argument list too long

cp 或者 mv命令复制移动的文件太多会导致这个问题

find 源路径 -name "*.jpg" -type f -print0 | xargs -0 cp -t 目标路径

用户操作

sudo useradd -m -d 用户主目录 -c "用户描述" 用户名
sudo passwd 用户名

## 修改用户根目录
# sudo下设置根目录
usermod -d /data2/hh hh
sudo mkdir /data2/hh
chown -R tom /opt/test
# 此命令是指定test文件夹的所有者是tom,-R是递归。如果test是文件就去掉-R。

Unable to determine the device handle for GPU0000:81:00.0: Unknown Error

推测是供电不足导致的问题,因此需要限制显卡功率

# 查看显卡功率
sudo nvidia-smi -q | grep 'Power Limit'
# 开启持久模式
sudo nvidia-smi -pm 1
# 限制某张卡的功率为250W
sudo nvidia-smi -i 1 -pl 250

PostgreSQL

Ubuntu 安装

sudo apt install postgresql
sudo service postgresql status
sudo -i -u postgres # 密码为空

psql # 进入数据库终端
ALTER USER postgres WITH PASSWORD 'Lpf65BsDhDNdaJmH';
# 创建名为 mydbuser 的用户,为 mydbuser 设置密码,并为 mydbuser 分配 CREATEROLE 和 CREATEDB 权限:
postgres=# CREATE USER mydbuser WITH PASSWORD 'mypasswd' CREATEROLE CREATEDB;
CREATE ROLE
\du #查看用户

# 使用 \q meta 命令从互动终端注销:
postgres=# \q

# 注销 postgres 用户会话:
$ logout

# 以 mydbuser 用户身份登录 PostgreSQL 终端,指定主机名并连接到默认的 postgres 数据库,该数据库在初始化过程中创建:
psql -h 127.0.0.1 -p 5432 -U hh -d postgres

# 创建数据库
create database track;
\l # 查看数据库

卸载:

sudo systemctl stop postgresql           ### 关闭数据库服务
sudo systemctl status postgresql ### 确认数据库服务处于关闭状态
sudo apt-get purge 'postgresql-*' ### 卸载数据库
sudo apt-get autoremove 'postgresql-*' ### 卸载数据库依赖包
sudo rm -r /etc/postgresql/ ### 删除配置文件
sudo rm -r /etc/postgresql-common/ ### 删除配置文件
sudo rm -r /var/lib/postgresql/ ### 删除数据目录
sudo userdel -r postgres ### 删除用户
sudo groupdel postgres ### 删除用户组