我想调整的FreeBSD的共享知识通过sysctl.conf
/ loader.conf
/ KENCONF
FreeBSD有调整/等它最初是基于伊戈尔Sysoev为的(Nginx的作者)呈现高达10-20万个的有效连接。较新版本的 FreeBSD 可以处理更多。
调整适用于 FreeBSD7 - FreeBSD-CURRENT。从 7.2 amd64 开始,默认情况下,其中一些已经很好地调整了。在 7.0 之前,其中一些仅用于引导(通过 设置
/boot/loader.conf
)或根本不存在。
sysctl.conf
:
# No zero mapping feature
# May break wine
# (There are also reports about broken samba3)
#security.bsd.map_at_zero=0
# Servers with threading software apache2 / Pound may want to rise following sysctl
#kern.threads.max_threads_per_proc=4096
# Max backlog size
# Note Application can still limit it by passing second argument to listen(2) syscall
# Note: Listen queue be monitored …
Run Code Online (Sandbox Code Playgroud) 我打错字了:
$ history
169 9:34 la /usr/local/etc/
170 9:35 sudo mkdir ^C
171 9:36 sudo mkdir /usr/local/etc/dnsmasq.d
Run Code Online (Sandbox Code Playgroud)
现在我有一个名为 ^C (ctrl+C) 的文件!!当我使用时,ls
我只看到一个问号(可能是由于语言环境?)
% ls -al
total 60
drwxr-xr-x 2 root wheel 512 Jan 21 09:35 ? <- this one
drwxr-xr-x 5 admin wheel 512 Jan 21 16:24 .
drwxr-xr-x 3 root wheel 512 Jan 20 14:29 ..
-rw-r--r-- 1 admin nobody 1114 Jan 20 19:10 .cshrc
-rw------- 1 admin wheel 6002 Jan 21 15:27 .history
-rw-r--r-- 1 admin nobody …
Run Code Online (Sandbox Code Playgroud) 在 FreeBSD 系统 (8.1) 上,我正在寻找有关如何检查 OpenSSH 正在运行的版本的说明以及有关下载安装 OpenSSH 更新的最佳方法的说明
我在 zpool 中有几 TB 的非常有价值的个人数据,由于数据损坏,我无法访问这些数据。该池最初是在 2009 年左右在 FreeBSD 7.2 系统上建立的,该系统在 Ubuntu 8.04 系统之上的 VMWare 虚拟机内运行。FreeBSD VM 仍然可用并且运行良好,只有主机操作系统现在已更改为 Debian 6。通过 VMWare 通用 SCSI 设备,来宾 VM 可以访问硬盘驱动器,总共 12 个。
有2个游泳池:
有效的那个是空的,破碎的保存着所有重要的数据:
[user@host~]$ uname -a
FreeBSD host.domain 7.2-RELEASE FreeBSD 7.2-RELEASE #0: \
Fri May 1 07:18:07 UTC 2009 \
root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
[user@host ~]$ dmesg | grep ZFS
WARNING: ZFS is considered to be an experimental feature in FreeBSD.
ZFS filesystem version 6
ZFS storage pool version 6 …
Run Code Online (Sandbox Code Playgroud) 我试图将主目录的层次结构暴露给许多 FreeBSD 监狱。主目录的配置使得每个目录都是唯一的 ZFS 数据集。监狱用于开发工作,因此会定期创建和销毁。
我的第一个想法是简单地使用nullfs挂载/home
到 jail,但nullfs不提供任何访问从属文件系统的方法。
我的第二个想法是通过 NFS 导出目录,然后在每个 jail 中运行自动挂载程序守护程序 (amd)。如果可以在监狱内执行 NFS 挂载,这将是有效的。但事实并非如此。
我的第三个想法是在主机上运行 amd 并将nullfs挂载到监狱中……但是 amd 对nullfs 的支持不存在。
我的第四个想法是回到使用 NFS 导出目录,因为 amd 当然可以与 NFS 一起使用,对吗?不幸的是,amd 不是在目标挂载点上挂载目录,而是喜欢在临时位置 ( /.amd_mnt/...
)挂载东西,然后创建符号链接……当然,这在 jail 环境中是无用的。
那么也许您可以使用nullfs将 的子目录暴露/.amd_mnt
给监狱?不!这让我们回到了我的第一次尝试,我们发现无法使用nullfs访问从属文件系统。
然后我的头爆炸了。
我正在尝试做的事情有没有好的解决方案?一个糟糕的解决方案是在启动 jail 之后运行一个脚本,该脚本将为每个主目录创建多个nullfs挂载点,但这非常笨拙——它需要定期运行以考虑新目录或删除的目录。所以基本上我将不得不编写一个糟糕的自动挂载程序。
一定会有更好的办法。帮助我,Serverfault,你是我唯一的希望!
更新 1:我突然想到我可以用 解决部分问题pam_mount
,尽管这充其量是不完整的。此外,文档中不清楚是否pam_mount
可以自动创建目标挂载点。如果它需要先验存在挂载点,那么这个解决方案不会比我已经提出的坏自动挂载器更好。
更新 2:如下面的答案中所讨论的,VFCF_JAIL
NFS 文件系统上的设置确实允许 jails 执行 NFS 挂载。不幸的是,自动挂载程序继续无用的行为,并且当在监狱中运行时,它似乎非常擅长以这样的方式陷入困境,以至于需要重新启动系统才能删除进程条目。
我写了一个错误的程序,它在 /tmp 下意外创建了大约 30M 的文件。(这个错误是几周前引入的,它每秒创建几个子目录。)我可以将 /tmp 重命名为 /tmp2,现在我需要删除这些文件。系统是 FreeBSD 10,根文件系统是 zfs。
与此同时,镜像中的一个驱动器出现问题,我已经更换了它。该驱动器有两个 120GB SSD 磁盘。
问题是:更换硬盘驱动器和重新同步整个阵列用了不到一个小时。删除文件 /tmp2 是另一回事。我写了另一个程序来删除文件,它每秒只能删除 30-70 个子目录。删除所有文件需要 2-4 天。
重新同步整个阵列需要一个小时,而从磁盘中删除需要 4 天,这怎么可能?为什么我的表现这么差?70 次删除/秒似乎非常非常糟糕的性能。
我可以手动删除 /tmp2 的 inode,但这不会释放空间,对吗?
这可能是 zfs 或硬盘驱动器的问题还是什么?
有些人会争辩说 BSD/Unix 一直比 Linux 更可靠和稳定(当然不是我,不要伤害我!)。为什么 Linux 似乎总是击败 BSD?这是Linux故事的浪漫吗?我无意冒犯任何人,请不要冒犯。另外,请在您的回复中考虑周到和礼貌。
在 centos 上,我可以通过在终端中按 ctrl + 箭头(向左或向右)来跳过一个单词。当我 ssh 进入 FreeBSD 框并尝试相同的模式时,我得到:
$ tail -f 20120412.log;5D;5D;5D
Run Code Online (Sandbox Code Playgroud)
(每次尝试 = ;5D)
有没有办法来解决这个问题?我正在使用 Ubuntu 12.04 + 终结者。
提前致谢。
所以我做了一个chmod -x chmod
. 我该如何解决这个问题?如何将执行权限返回给 chmod?
我知道 FreeBSD 以高度稳定、安全和开源而闻名。所以我要在我的一台服务器上尝试一下。但是,我想知道使用 FreeBSD 而不是 Ubuntu 或其他 Linux 版本的优缺点是什么?我特别有兴趣了解两者在 php/mysql 性能上的差异,因为硬件是相同的,并且使用了最佳服务器配置。
谢谢