Oracle® Solaris 11 安全准则

退出打印视图

更新时间: 2014 年 9 月
 
 

如何限制 tmpfs 文件系统的大小

缺省情况下,tmpfs 文件系统的大小不受限制。因此,tmpfs 可以不断增长,直至占满可用的系统内存和交换空间。因为 /tmp 目录供所有应用程序和用户使用,所以某个应用程序可能会占用所有可用系统内存。同样,恶意的非特权用户可能通过在 /tmp 目录中创建大文件来降低系统速度。为避免性能影响,您可以限制每个 tmpfs 挂载的大小。

您可以尝试多个值来获取最佳系统性能。

开始之前

要编辑 vfstab 文件,您必须成为分配有 solaris.admin.edit/etc/vfstab 授权的管理员。要重新引导系统,必须已为您指定了 "Maintenance and Repair"(维护和修复)权限配置文件。root 角色具有所有这些权限。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  1. 确定您系统的内存量。

    注 -  以下示例所使用的 SPARC T3 系列系统配备具有更快 I/O 速率的固态驱动器 (Solid State Drive, SSD) 以及八个大小为 279.40 MB 的磁盘。系统大约有 500 GB 的内存。
    % prtconf | head
    System Configuration:  Oracle Corporation  sun4v
    Memory size: 523776 Megabytes
    System Peripherals (Software Nodes):
    
    ORCL,SPARC-T3-4
    scsi_vhci, instance #0
    disk, instance #4
    disk, instance #5
    disk, instance #6
    disk, instance #8
  2. 计算 tmpfs 的内存限制。

    根据系统内存的大小,计算内存限制时您可能希望将大系统的阈值设为大约 20%,小系统的阈值设为大约 30%。

    所以,对于较小的系统,请使用 .30 作为乘数。

    10240M x .30 ≈ 340M

    对于较大的系统,请使用 .20 作为乘数。

    523776M x .20 ≈ 10475M
  3. 使用该大小限制修改 /etc/vfstab 文件中的 swap 条目。
    # pfedit /etc/vfstab
    #device     device       mount       FS      fsck    mount mount
    #to mount   to fsck      point       type    pass    at boot options
    #
    ...
    #swap       -            /tmp        tmpfs   -       yes     -
    swap        -            /tmp        tmpfs   -       yes     size=10400m
    /dev/zvol/dsk/rpool/swap   -      -  swap    -       no      - 
  4. 重新引导系统。
    # reboot
  5. 检验大小限制是否有效。
    % mount -v
    swap on /system/volatile type tmpfs
    read/write/setuid/devices/rstchown/xattr/dev=89c0006 on Tues Feb 4 14:07:27 2014
    swap on /tmp type tmpfs
    read/write/setuid/devices/rstchown/xattr/size=10400m/dev=89c0006 on Tues ...
  6. 监视内存使用情况并将大小限制调整至符合站点的要求。

    df 命令颇为有用。swap 命令提供最有用的统计信息。

    % df -h /tmp
    Filesystem Size Used Available Capacity Mounted on
    swap          7.  4G     44M    7.4G 1%       /tmp
    
    % swap -s
    total: 190248k bytes allocated + 30348k reserved = 220596k used,
    7743780k available 

    有关更多信息,请参见 tmpfs(7FS)mount_tmpfs(1M)df(1M)swap(1M) 手册页。