极客油画

-r--r--r-- 权限的文件,执行 chmod +w 失败,报Operation not permitted

若文件被添加了 i 属性(不可变),任何修改(包括权限)均会被拒绝

解决方法:

lsattr /path/to/file  # 查看文件属性
sudo chattr -i /path/to/file  # 移除不可变属性(需root权限)

花括号扩展

去掉文件的.bak后缀: mv filename{.bak,}

linux的硬连接和软连接

inode就是文件的元数据

文件结构:

[文件名]---->[inode]------>[数据块]

硬连接:只能对同分区的文件做

[文件名]---->[inode]------>[数据块]
              ^
              |
[硬连接]------+

软连接:像是文件或目录的快捷方式

[文件名]---->[inode]------>[数据块]
   ^           
   +<<<<<<<<<<<<<<<<<<<<<<<<<<+
                              |
[软连接]---->[inode1]----->[数据块]

no space left on device

文件系统的 inode 总数在格式化时就固定了,因此有可能磁盘空间还有剩余,但 inode 已经耗尽,这时候也会报“no space left on device”的错误。

如果一个文件被删除,但仍然有​​正在运行的进程打开并持有这个文件的句柄​​,那么这个文件实际占用的磁盘空间(数据块)会被释放,但其 ​​inode 可能不会被立即释放​​,直到所有持有它的进程关闭该文件。

可以使用 lsof | grep deleted 命令来查看是否有这类被删除但仍被进程占用的文件。

每个inode就是一个文件,所以可以通过查看目录下有多少个文件,来判断这个目录占用了多少个inode: find /path | wc -l

USS 和 PSS 和 RSS

指标​​ 计算方式​​ 共享内存处理​​ 适用场景​​ 示例(共享库 1000KB,4 个进程)
USS 仅计算 ​​独占内存 完全忽略共享内存 评估进程独占内存占用 每个进程 USS += 0KB(共享部分不算)
PSS 独占内存 + ​​共享内存均摊 按进程数分摊​​ 评估系统真实内存压力 每个进程 PSS += 250KB(1000KB / 4)
RSS​​ 独占 + ​​共享内存全量​​ 重复计算共享内存​​ 粗略估算物理内存占用 每个进程 RSS += 1000KB(严重高估)

USS: Unique Set Size,查看命令:awk '/Private_/{uss += $2} END {print "USS:", uss " kB"}' /proc/<PID>/smaps

PSS: Proportional Set Size,查看命令:awk '/Pss:/ {sum+=$2} END {print sum " kB"}' /proc/[PID]/smaps

RSS: Resident Set Size,查看命令: ps -e -o 'pid,comm,rsz,args' | grep [PID]


本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 极客油画 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image