Tri*_*ran 8 amazon-ec2 amazon-web-services
我在 AWS EC2 CentOS 7 上流式传输 Kafka。我的会话管理器空闲超时设置为 60 分钟。然而,在运行的时间远低于此值后,终端被冻结,并显示My session has been terminated
。当然,Kafka 流也中断了。
当我尝试使用新终端重新启动新会话时,出现此错误弹出窗口
Your session has been terminated for the following reasons: Plugin with name Standard_Stream not found. Step name: Standard_Stream
Run Code Online (Sandbox Code Playgroud)
我仍然无法重新启动终端。
这个错误是什么意思以及如何解决它?谢谢。
小智 9
运行tail -f
遇到问题
tail: inotify resources exhausted
tail: inotify cannot be used, reverting to polling
Run Code Online (Sandbox Code Playgroud)
重新启动 ssm-agent 服务也遇到问题No space left on device
,但这与磁盘空间无关
[root@env-test ec2-user]# systemctl restart amazon-ssm-agent.service 错误:设备上没有剩余空间
[root@env-test ec2-user]# df -h |grep dev devtmpfs 32G 0 32G 0% /dev tmpfs 32G 0 32G 0% /dev/shm /dev/nvme0n1p1 100G 82G 18G 83% /
因此,错误本身意味着系统的 inotify 监视功能不足,使程序能够监视文件/目录的更改。查看当前设置的限制(包括我的机器上的输出)
$ cat /proc/sys/fs/inotify/max_user_watches
8192
检查哪些进程使用 inotify 来改进您的应用程序或增加max_user_watches
for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr
5 /proc/1/fd/anon_inode:inotify
2 /proc/7126/fd/anon_inode:inotify
2 /proc/5130/fd/anon_inode:inotify
1 /proc/4497/fd/anon_inode:inotify
1 /proc/4437/fd/anon_inode:inotify
1 /proc/4151/fd/anon_inode:inotify
1 /proc/4147/fd/anon_inode:inotify
1 /proc/4028/fd/anon_inode:inotify
1 /proc/3913/fd/anon_inode:inotify
1 /proc/3841/fd/anon_inode:inotify
1 /proc/31146/fd/anon_inode:inotify
1 /proc/2829/fd/anon_inode:inotify
1 /proc/21259/fd/anon_inode:inotify
1 /proc/1934/fd/anon_inode:notify
Run Code Online (Sandbox Code Playgroud)
max_user_watches
达到限制时遇到 SSM 问题ps-ef | grep ssm-ag
root 3841 1 0 00:02 ? 00:00:05 /usr/bin/amazon-ssm-agent
root 4497 3841 0 00:02 ? 00:00:33 /usr/bin/ssm-agent-worker
Run Code Online (Sandbox Code Playgroud)
echo "fs.inotify.max_user_watches=1048576" >> /etc/sysctl.conf sysctl -p
核实:
$ aws ssm start-session --target i-123abc456efd789xx --region ap-northeast-2
使用 SessionId 启动会话:userdev-03ccb1a04a6345bf5
sh-4.2$
可选链接
SSM 代理可以在两种情况下报告此错误。
\n$ sudo sysctl -w fs.file-max=100000\n
Run Code Online (Sandbox Code Playgroud)\n要将其设置为永久,请将以下行附加到 /etc/sysctl.conf
\n$ fs.file-max = 100000\n
Run Code Online (Sandbox Code Playgroud)\n$ sudo cat /proc/sys/fs/inotify/max_user_instances: \n
Run Code Online (Sandbox Code Playgroud)\n\n\n这指定了每个真实用户 ID 可以创建的 inotify 实例数量的上限。默认值为 128
\n
$ sudo cat /proc/sys/fs/inotify/max_user_watches:\n
Run Code Online (Sandbox Code Playgroud)\n\n\n这指定了每个真实用户 ID 可以创建的监视数量的上限。默认值为 8192
\n
要检查每个进程的 inotify 资源消耗,您可以运行以下命令。
\n$ sudo find /proc/*/fd -lname anon_inode:inotify | cut -d/ -f3 | xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}' | uniq -c | sort -nr\n
Run Code Online (Sandbox Code Playgroud)\n使用 tail -f 进行测试,看看是否还有空间容纳新的 inotify 观察者。以 root 用户身份运行此命令,并查找任何类似于“tail: inotify 无法使用,恢复到轮询:打开文件太多”的消息
\n$ sudo su -\n\n$ tail -f /var/log/syslog\n
Run Code Online (Sandbox Code Playgroud)\n如果出现该错误,则表明系统已达到 inotify 子系统的上述限制之一。增加限制或重新启动以清除。使用 tail -f 再次测试它,看看更改后是否创建了新的观察者。
\n$ sudo sysctl fs.inotify.max_user_watches=16384\n\n$ sudo sysctl fs.inotify.max_user_instances=256\n
Run Code Online (Sandbox Code Playgroud)\n使此更改在重新启动后保持不变。
\n$ echo "fs.inotify.max_user_watches = 16384\xe2\x80\x9d >> /etc/sysctl.d/20-fs-inotify.conf\n\n$ echo "fs.inotify.max_user_instances = 256\xe2\x80\x9d >> /etc/sysctl.d/20-fs-inotify.conf\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
52323 次 |
最近记录: |