当服务器上的大文件被删除时,这些文件可能仍然被进程引用,因此文件系统没有更多的可用空间。
我尝试使用lsof,但似乎没有列出已删除的文件。fuser -c做了更好的工作,但进程列表太长而无法检查每个进程,特别是因为每个进程都是一个 Oracle 进程。
bash-3.2# fuser -c /var
/var: 105o 29999o 20444c 3528c 27258o 7715o 3864o 3862o 2494o 18205o 17450co 17445co 14912co 14824co 14818co 14816o 14814o 8532c 8530c 7633com 7118o 6958o 6790c 6784co 6734o 6693o 6689o 6684o 6675o 6635o 6594c 6548o 6547o 6546o 6545o 6544o 6543o 6542o 6541o 6540o 6537o 6535o 6456o 6128co 6113o 335o 245co 229o 161o 8o
bash-3.2# du -hs /proc
139T /proc
Run Code Online (Sandbox Code Playgroud)
有时,文件被应用程序或用户删除,例如日志文件,并且该文件仍被无法重新启动的进程引用。
是否有很好的方法来回收已删除文件的磁盘空间,而无需重新启动引用此已删除文件的进程?
我想知道为什么 NFS v4 会比 NFS v3 快得多,以及 v3 上是否有任何可以调整的参数。
我挂载文件系统
sudo mount -o 'rw,bg,hard,nointr,rsize=1048576,wsize=1048576,vers=4' toto:/test /test
Run Code Online (Sandbox Code Playgroud)
然后运行
dd if=/test/file of=/dev/null bs=1024k
Run Code Online (Sandbox Code Playgroud)
我可以读取200-400MB/s 但是当我将版本更改为vers=3,重新安装并重新运行 dd 时,我只能得到90MB/s。我正在读取的文件是 NFS 服务器上的内存文件。连接的两端都是 Solaris 并且有 10GbE 网卡。我通过在所有测试之间重新安装来避免任何客户端缓存。我曾经dtrace在服务器上看到以衡量通过 NFS 提供数据的速度。对于 v3 和 v4,我更改了:
nfs4_bsize
nfs3_bsize
Run Code Online (Sandbox Code Playgroud)
从默认的 32K 到 1M(在 v4 上我用 32K 达到了 150MB/s)我试过调整
提高 v3 的性能,但不行。
在 v3 上,如果我运行四个并行dd,吞吐量从 90MB/s 下降到 70-80MBs,这让我相信问题出在某些共享资源上,如果是这样,那么我想知道它是什么以及我是否可以增加它资源。
获取窗口大小的 dtrace 代码:
#!/usr/sbin/dtrace -s
#pragma D option quiet
#pragma D option …Run Code Online (Sandbox Code Playgroud) 还有一个关于 Solaris 10 内存的问题。
一顶让我发现,我有672 MB可用内存:
130 processes: 126 sleeping, 2 zombie, 2 on cpu
CPU states: 95.1% idle, 3.9% user, 1.0% kernel, 0.0% iowait, 0.0% swap
Memory: 16G phys mem, 672M free mem, 2048M total swap, 2023M free swap
Run Code Online (Sandbox Code Playgroud)
一个vmstat显示我相同:
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr rm s0 s1 s2 in sy cs us sy id
0 0 0 564744 687896 3 13 …Run Code Online (Sandbox Code Playgroud) 如果有人在 Solaris 10 上使用了 syslog-ng,您是否有我可以遵循的一组说明来安装和运行它?
我尝试按照这个http://opensystems.wordpress.com/2006/06/01/replacing-syslog-on-solaris-10-with-syslog-ng/但卡住了 syslog-ng 服务卡在重启没有任何迹象为什么。
谢谢你的帮助。尼克B
我在solaris 10中有一个“门”类型的文件(这是一种进程间通信的方式)。它以某种方式遗留下来,我想摆脱它。我不能只用 rm 删除它...
ls -l
total 0
Dr--r--r-- 1 root root 0 Oct 12 2012 name_service_door
# rm name_service_door
rm: name_service_door not removed: Device busy
# lsof name_service_door
Run Code Online (Sandbox Code Playgroud)
显然某些进程仍在使用它。但是, lsof 不显示任何内容。来自“ps -elf”的人也不清楚是谁在使用它。我怎样才能摆脱这个文件?
更新:我重新启动服务器,这当然杀死了所有进程,从而释放了文件。然后我可以删除它。但是,我仍然有兴趣知道如何在不重新启动的情况下执行此操作(在生产环境中,这并不总是一种选择)。
我想了解SUN SPARC VII M9000系列服务器的CPU架构。
prtdiag命令显示它有 8 个内核连接到一个物理 CPU。这些是物理核心吗?什么是 L1、L2 和 L3 缓存架构?
如果可用 CPU 数为 8,我可以运行的最大线程数是多少。即。64核。
这些内核是一种硬件线程吗?
谢谢你的回答。
既然是SMT,能不能扩展到64个线程。我有一些观察:直到 32 个线程并行运行,每个线程需要 8 到 9 秒才能完成。尝试超过 32 个线程所需的时间非线性增长,64 个线程达到 14 秒。
但是,如果我们有专用内核,则其他机器上的相同程序会显示最大线程数所需的时间。
该架构中的两个线程正在获取指令,然后进行流水线操作以在内存访问期间提供执行周期。(如果我的理解是正确的)。问题: 1. 不适合cpu密集型多线程程序采用这种架构是否正确。2. 应用程序应该混合使用 I/O 和 CPU 作业才能正确利用它。
这是我在 zpool 中更换了几次磁盘后的一台 Solaris 10 服务器
pool: volume
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Wed Jul 6 11:43:51 2016
207M scanned out of 36.7T at 1.48M/s, (scan is slow, no estimated time)
207M scanned out of 36.7T at 1.48M/s, 7235h37m to go
13.5M resilvered, 0.00% done
config:
NAME STATE READ WRITE CKSUM …Run Code Online (Sandbox Code Playgroud) 我试图在solaris 10 上使用snoop 来检测位于我的机器上的客户端和服务器之间的流量。 问题:我只是想验证我是否应该为此使用环回接口。
所以现在是真正的问题。
我发现一些帖子建议您不能在 Solaris 上使用 snoop 来侦听环回接口。有人可以为我验证这一点。我发现了一些似乎暗示这一点的线程,但它们中的大多数都相当陈旧(请参阅底部的链接)。
这个问题解决了吗? 有没有办法在 Solaris 10 上监听环回接口? (使用窥探或其他方法。我的假设是,如果窥探不起作用,wireshark 之类的东西也不会起作用)。
这是我尝试过的:
% sudo snoop -d lo0
Run Code Online (Sandbox Code Playgroud)
结果如下:
snoop: cannot open "lo0": DLPI link does not exist
Run Code Online (Sandbox Code Playgroud)
谢谢
http://forums.sun.com/thread.jspa?threadID=5252240 http://www.mail-archive.com/networking-discuss@opensolaris.org/msg01860.html http://www.derkeiler.com/邮件列表/securityfocus/focus-sun/2002-08/0007.html http://opensolaris.org/jive/thread.jspa?messageID=175240
我之所以这么问是因为我最近使用 NetBackup 从备份中恢复了一个系统,而 uptime 现在报告说该系统在恢复完成后才开始运行,尽管它已经运行了好几天。Last reboot也报了错误的信息,但反其道而行之,说上次重启是几个月前,从那时起系统已经重启了很多次。
本质上,我想知道正常运行时间和重启信息的存储位置,以便我可以在将来的恢复过程中对其进行维护。
> uptime
9:54am up 1 day(s), 15:52, 3 users, load average: 0.93, 0.95, 0.86
> last reboot
wtmp begins Mon Sep 21 03:10
Run Code Online (Sandbox Code Playgroud) rss活动进程的所有值(状态为S或)的总和是否可以O远大于总物理内存 + 交换空间?
通过物理内存,我指的是结果prtdiag | grep Memory
还有交换大小,我参考的是结果swap -l。