inux /dev/shm的用途

 1.linux下的/dev/shm是什么?

/dev/shm/是linux下一个目录,/dev/shm目录不在磁盘上,而是在内存里,因此使用linux /dev/shm/的效率非常高,直接写进内存。

我们可以通过以下两个脚本来验证linux /dev/shm的性能:

[root@db1 oracle]# ls -l linux_11gR2_grid.zip
-rw-r--r-- 1 oracle dba 980831749 Jul 11 20:18 linux_11gR2_grid.zip
[root@db1 oracle]# cat mycp.sh
#!/bin/sh
echo `date`
cp linux_11gR2_grid.zip ..
echo `date`
[root@db1 oracle]# ./mycp.sh
Fri Jul 15 18:44:17 CST 2011
Fri Jul 15 18:44:29 CST 2011

[root@db1 shm]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-lv01
                       97G  9.2G   83G  10% /
/dev/sda1              99M   15M   80M  16% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm

[root@db1 oracle]# cat mycp1.sh
#!/bin/sh
echo `date`
cp linux_11gR2_grid.zip /dev/shm
echo `date`
[root@db1 oracle]# ./mycp1.sh
Fri Jul 15 18:44:29 CST 2011
Fri Jul 15 18:44:30 CST 2011
[root@db1 oracle]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-lv01
                       97G  9.2G   83G  10% /
/dev/sda1              99M   15M   80M  16% /boot
tmpfs                 2.0G  937M  1.1G  46% /dev/shm
[root@db1 oracle]#

可以看出,在对一个将近1g为文件的复制,拷到磁盘上与拷到/dev/shm下还是有很大差距的。

tmpfs有以下特点:
1.tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。
2.动态文件系统的大小。
3.tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。
4.tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载、绑定的操作。

2.linux /dev/shm 默认容量

linux下/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是绝不会被系统回收重新划分的,否则谁还敢往里头存文件呢?

通过df -h查看linux /dev/shm的大小

[root@db1 shm]# df -h /dev/shm
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 1.5G     0  1.5G   0% /dev/shm
3.linux /dev/shm 容量(大小)调整

linux /dev/shm容量(大小)是可以调整,在有些情况下(如oracle数据库)默认的最大一半内存不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。
mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件

通过/etc/fstab文件来修改/dev/shm的容量(增加size选项即可),修改后,重新挂载即可:

[root@db1 shm]# grep tmpfs /etc/fstab
tmpfs                   /dev/shm                tmpfs   defaults,size=2G        0 0
[root@db1 /]# umount /dev/shm
[root@db1 /]# mount /dev/shm
[root@db1 /]# df -h /dev/shm
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 2.0G     0  2.0G   0% /dev/shm

[root@db1 /]# # mount -o remount /dev/shm
[root@db1 /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-lv01
                       97G  9.2G   83G  10% /
/dev/sda1              99M   15M   80M  16% /boot
tmpfs                 2.0G     0  2.0G   0% /dev/shm
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux系统中,可以通过命令行工具来查看串口已经接收的数据。以下是一种常见的方法: 1. 连接串口:将串口设备与设备主机连接,在Linux系统中,串口一般以/dev/ttyX(X为数字)的形式表示。 2. 打开终端:打开终端应用程序或者使用Ctrl+Alt+T快捷键打开终端。 3. 使用命令行工具:在终端中使用命令行工具来查看串口数据,常用的工具有minicom、screen和cat等。 - 使用minicom:安装minicom,并使用以下命令打开串口终端: ``` sudo minicom -D /dev/ttyX ``` 其中,X为串口设备号。然后按下回车键,就可以开始查看串口数据。 - 使用screen:安装screen,并使用以下命令打开串口终端: ``` sudo screen /dev/ttyX ``` 然后按下回车键,就可以开始查看串口数据。 - 使用cat:在终端中使用以下命令来查看串口数据: ``` sudo cat /dev/ttyX ``` 然后按下回车键,就可以开始查看串口数据。 使用上述命令行工具之一,即可实时查看串口已经接收的数据。要退出查看,可以使用Ctrl+C组合键。 ### 回答2: 在Linux中,要查看串口已经接收的数据,可以使用以下几种方法: 1. 使用命令行工具:可以使用命令行工具如minicom、picocom或者screen来查看串口接收的数据。首先,确保串口已经连接到计算机上。然后,在终端中输入命令“minicom -D /dev/ttyUSB0”(假设串口设备为/dev/ttyUSB0),然后按回车键。接下来,你就可以在终端上查看串口接收到的数据了。要退出minicom,可以按下Ctrl+A,再按下字母Q。 2. 使用串口监视器软件:可以使用Graphical User Interface(GUI)的串口监视器软件来查看串口接收的数据,比如GtkTerm、Cutecom、SerialTTY等。打开软件后,选择正确的串口设备并设置正确的波特率,然后你就可以实时查看串口接收到的数据了。 3. 编写自定义程序:如果你需要对串口接收到的数据进行一些特殊处理,你可以自行编写一个程序来实现。使用C或者Python等编程语言,打开串口设备文件,然后使用read函数来读取串口接收的数据。具体的代码实现可以根据你的需求来编写。 无论使用哪种方法,重要的是要确保串口设备正确连接到计算机上,并设置正确的波特率和其他参数。另外,查看串口接收的数据时,可能需要在终端或者软件中进行一些配置,比如显示数据的格式、换行符等。可以根据具体的需求和情况来设置。 ### 回答3: 在Linux系统中,可以通过命令行工具来查看串口已经接收的数据。 首先,打开终端窗口并进入命令行模式。 接下来,使用以下命令来查看已经接收到的串口数据: `sudo cat /dev/ttyS0` 上面的命令中,`/dev/ttyS0` 是标识第一个串口设备。若要查看其他串口设备,可以将其替换为对应的设备标识,如 `/dev/ttyS1` 表示第二个串口设备。 执行以上命令后,终端窗口将实时显示串口接收到的数据。可以通过关闭窗口或按下 Ctrl + C 组合键来停止数据显示。 对于 USB-Serial 转换器等需要通过 USB 接口连接的串口设备,使用的命令略有不同。可以使用以下命令来查看: `sudo cat /dev/ttyUSB0` 上面的命令中,`/dev/ttyUSB0` 是标识第一个 USB 串口设备。若要查看其他 USB 串口设备,可以将其替换为对应的设备标识,如 `/dev/ttyUSB1` 表示第二个 USB 串口设备。 需要注意的是,在使用以上命令之前,需要具备管理员权限。因此,在命令前需要使用 `sudo` 命令或以 root 用户身份执行。 以上就是在Linux中查看串口已经接收的数据的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值