服务器管理员

系统和网络管理员的问答


1
NFSv4用户映射
这个问题似乎已经被问过很多次了,但是其他答案都不适用于我。 基本上,我只是设置了一个新的NFSv4服务器,并且遇到了服务器和客户端之间UID和GID不匹配的经典问题。但是,在我的场景中,同步/ etc / passwd和/ etc / group是不可行的。请注意,我在两台计算机上确实具有相同的用户(而不是这个问题)。 因此,我正在研究idmap:根据一些消息来源,似乎NFSv4发送了用户名(与NFSv3发送UID / GID的行为相反),而idmap的作用是将这些用户名转换为服务器UID / GID。 但是,对于我来说,这似乎不起作用(下面的设置详细信息),我认为这非常标准(仅从回购中安装了NFS)。 我想念什么吗?有没有一种方法可以在不设置LDAP或Kerberos的情况下使它起作用? 服务器设置 服务器已Ubuntu 16.04安装并且有两个用户。 user1@server:~$ id user1 uid=1000(user1) gid=1000(user1) groups=1000(user1),27(sudo) user1@server:~$ id user2 uid=1001(user2) gid=1001(user2) groups=1001(user2) NFS是从回购中安装的,并配置为导出测试文件夹。 user1@server:~$ sudo apt-get install nfs-kernel-server user1@server:~$ sudo cat /proc/fs/nfsd/versions +2 +3 +4 +4.1 +4.2 user1@server:~$ ls -ld /srv/nfs/test/ drwxrwxrwx …
12 ubuntu  nfs 

2
用另一个文件覆盖php-fpm池配置值
必须自定义新服务器的php-fpm池配置,我想知道是否有可能/允许/建议使用一个新的池文件,该文件名按字母顺序排列在原始文件之后,该文件仅具有覆盖初始配置的值。 原始配置以/etc/php/7.0/fpm/pool.d命名www.conf。 根据与安装相关的页面,工程师似乎可以直接修改原始文件(保存初始值的副本)。例如 [www] ... user www-data group www-data pm.max_children 2 修改后给出 [www] ... user myapp ; was www-data group myapp ; was www-data pm.max_children 8 ; was 2 但是,在下一次升级php-fpm之后,似乎有可能要重复执行此任务(此外,配置已步入7.0正轨,这令人担忧)。 我不想修改原始文件,而是要保持不变,然后添加另一个文件,说wwwmyapp.conf它将声明相同的池,并且仅保留已更改的值 在 wwwmyapp.conf [www] ; same pool! user myapp group myapp pm.max_children 8 在pool.d中,文件列表 www.conf wwwmyapp.conf 因为在php-fpm.conf所有池conf文件中都已加载,所以的值wwwmyapp将在www(在同一www池中)的值之后读取,并且应覆盖第一个值。 它似乎可以在一些测试中工作,并且没有错误报告,但是它会一直在所有值中工作吗? 我们应该直接覆盖配置文件吗? 在任何文档中都找不到答案,即使在php.net上也是如此。

2
如何调试系统单元ExecStart
我很好奇我是否可以打印出完全扩展的ExecStart/ExecStop命令行。考虑以下示例: ExecStart=/usr/bin/java $OPTS_COMMON $OPTS $OPTS_LOG $OPTS_DEBUG some.class.Start --param1 ${PARAM1} --param2 ${PARAM2} 我的命令行很长,涉及很多环境变量。如果某些变量出错(例如,通过嵌入式配置),则服务可能根本无法启动。但是,我在任何地方都看不到带有替代env的完全展开的行,因此我很难找出问题所在。 我没有运气谷歌搜索,到目前为止,我发现的唯一可能性是修改单元文件以运行,/usr/bin/echo而不是服务本身。但这有点累。甚至更烦人的解决方案-逐一检查每个环境变量。 有什么方法可以强制系统化地向我展示实际尝试运行的内容吗?
12 systemd 

2
如何确定Azure App Service中100%CPU使用率的原因?
我在Azure应用程序服务计划中有五个应用程序,同一应用程序的所有不同副本适用于不同的客户端。这是带有SQL数据库的ASP.NET MVC应用程序。 今天早上,我醒来了一些缓慢且无响应的网站,有时会导致503错误。在检查App Service Plan的CPU /内存指标后,我发现CPU固定为100%: 各个站点的CPU时间图表显示它们全部同时关闭,尽管有些情况比其他情况差: 我尝试通过执行“高级应用程序重新启动”来解决此问题,但刀片无法加载-我认为是因为它试图从无法响应的服务器获取信息。 最后,我尝试逐个停止每个站点,这使CPU恢复为零,然后再次将其重新启动,这似乎已经解决了问题,但是现在其中一些已经开始恢复。 几周前,我遇到了类似的问题,并认为我的App Plan太大了,所以从S1升级到S2,直到今天还不错。 我对如何弄清楚造成CPU饥饿行为的原因一无所知。谁能指出我正确诊断该病的正确方向?

1
包含大量文件的NTFS驱动器上的性能缓慢
我正在查看此设置: Windows Server 2012 1 TB NTFS驱动器,4 KB群集,约90%的已满容量 约10,000万个文件夹中存储的约1000万个文件=约1,000个文件/文件夹 大部分文件小于50 KB 磁盘阵列上托管的虚拟驱动器 当应用程序访问随机文件夹中存储的文件时,读取每个文件需要60-100毫秒。使用测试工具,似乎在打开文件时发生延迟。读取数据仅需花费一小部分时间。 总之,这意味着读取50个文件很容易需要3-4秒,这比预期的要多得多。批处理是写的,因此此处性能不是问题。 我已经遵循关于SO和SF的建议来得出这些数字。 使用文件夹减少每个文件夹的文件数量(在文件系统中存储一百万个图像) 运行contig对文件夹和文件进行碎片整理(https://stackoverflow.com/a/291292/1059776) 8.3名称和上次访问时间被禁用(配置NTFS文件系统以提高性能) 读取时间该怎么办? 认为每个文件60到100毫秒是可以的(不是吗?) 有什么想法可以改善设置吗? 是否有低级监视工具可以告诉您确切花费了什么时间? 更新 如注释中所述,系统运行Symantec Endpoint Protection。但是,禁用它不会更改读取时间。 PerfMon每次读取的时间为10-20毫秒。这意味着任何文件读取都需要约6个I / O读取操作,对吗?这是MFT查找和ACL检查吗? MFT的大小约为8.5 GB,比主内存大。

2
如何配置systemd以在重载时终止并重新启动守护进程?
我有一个老式的守护程序,我想使用systemd进行控制。当其配置文件更改时,需要将其杀死并重新启动。换句话说,在编辑配置文件后,systemctl reload MYSERVICE应终止该进程并重新启动它。 尝试1:尝试使用默认值。这告诉systemd如何启动守护程序,而不是如何重新加载它。 [Service] ExecStart=/usr/bin/MYSERVICE Type=simple 其结果是,start和restart工作,但reload给出了这样的错误: # systemctl reload MYSERVICE Failed to reload MYSERVICE.service: Job type reload is not applicable for unit MYSERVICE.service. 尝试2:告诉它如何终止进程。这杀死了进程,但是systemd不会为我重新启动它。 [Service] ExecStart=/usr/bin/MYSERVICE Type=simple ExecReload=/bin/kill -HUP $MAINPID ...其次是... # systemctl daemon-reload # systemctl reload MYSERVICE ...杀死进程,但不会自动重启。 尝试3:也使用ExecReload重新启动该过程。失败的原因如下: ExecReload=/bin/kill -HUP $MAINPID ; /usr/bin/MYSERVICE ...我收到的错误消息...: # systemctl …
12 systemd 


3
挖掘响应中的所有标志是什么?
dig 响应在评论部分返回标志: $ dig example.com +noall +comments ; <<>> DiG 9.8.3-P1 <<>> example.com +noall +comments ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29045 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 在此的最后一行,有标志: flags: qr rd ra; 挖洞有哪些可能的标志? 这是到目前为止我发现的列表: …

2
当无法到达上游时,使nginx忽略站点配置
我的nginx中有多个站点配置,当我重新启动计算机时,如果无法访问其中一个站点的上游,则nginx将根本无法启动,并且那些正常的站点也将无法启动,如何让Nginx会忽略那些无效的网站吗? http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # …
12 nginx 

2
一段时间后的首次请求总是很慢-ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS
我在具有Windows Server 2012 R2 / IIS 8.5、1 GB RAM的VPS上托管低流量的ASP.NET MVC 5应用程序。 我的问题是,一段时间后没有任何请求的第一个请求始终会得到较慢的响应-根据Chrome开发工具,大约为1.5秒。随后的刷新请求/响应仅花费约45毫秒。 我已经在应用程序池上将启动模式设置为AlwaysRunning,并且在网站级别上将Preload Enabled设置为True,但是绝对没有效果。即使没有任何更改/上载,经过一段时间后,下一个请求也需要1.5 s来获得响应。

2
如何减少Docker映像大小
我有运行GlassFish的容器。当我尝试提交映像时,它变为14GB。后来,我删除/tmp/了10GB的容器并尝试提交映像,但该映像仍然是14GB。似乎从容器中删除文件并没有反映在图像大小中。如何解决此问题?
12 docker 

1
如何将安全组链接到我的AWS RDS实例
我在RDS上有一个postgres db设置。运行良好。但是,我想将其链接到位于ELB后面的一组自动缩放的EC2实例,这些实例全部驻留在一个中EC2 security group。 有人告诉我可以为使用我的EC2安全组作为源的RDS实例向安全组添加规​​则。当进入控制台并编辑RDS安全组时,我仅在源列下看到以下选项:Anywhere, Custom IP, and My IP。 在该列顶部的信息弹出窗口中显示:(To specify a security group in another AWS account (EC2-Classic only), prefix it with the account ID and a forward slash, for example: 111122223333/OtherSecurityGroup.看起来它可能仅适用于EC2-Classic) 它不允许我在“源”下拉框中键入内容。 在RDS部分下,我注意到它们具有option groups。但是,与我的postgres实例关联的默认选项组不可编辑。 因此,我尝试创建一个新组。在这一点上,我发现postgres没有被列为可用engine。我选择mysql只是为了看看是否可以添加选项。看来我可以将安全组添加到mysql实例,但不能添加postgres实例。 postgres实例不支持此预期选项吗?

3
使用CONNECT的Squid HTTPS隧道非常慢
我在网络上使用鱿鱼来缓存内容。我使用命令行开关启动chrome,告诉它使用代理。 在大多数情况下,这非常有效,因为鱿鱼会缓存大量内容,并且在用户数量有限的情况下,它的性能很好。 当我访问使用chrome的HTTPS网站时,首页加载非常缓慢。chrome上的状态栏显示“正在等待代理隧道...”。Chrome使用CONNECT动词通过代理建立隧道并与服务器建立HTTPS。随后的页面很快,因为Chrome使连接保持打开状态。 我检查了squid3日志。这是一些CONNECT条目。第二列是以毫秒为单位的响应时间 1416064285.231 2926 192.168.12.10 TCP_MISS/200 0 CONNECT www.google.com:443 - DIRECT/74.125.136.105 - 1416064327.076 49702 192.168.12.10 TCP_MISS/200 1373585 CONNECT r2---sn-q4f7sn7l.googlevideo.com:443 - DIRECT/173.194.141.152 - 1416064345.018 63250 192.168.12.10 TCP_MISS/200 545 CONNECT mtalk.google.com:5228 - DIRECT/74.125.136.188 - 1416064372.020 63038 192.168.12.10 TCP_MISS/200 1809 CONNECT www.facebook.com:443 - DIRECT/31.13.91.2 - 1416064393.040 64218 192.168.12.10 TCP_MISS/200 25346 CONNECT …
12 https  squid 

2
如何在驱动器处于“ E”状态的Synology NAS上恢复mdadm阵列?
Synology具有md驱动程序和mdadm工具集的自定义版本,可在内核的rdev-> flags结构中添加“ DriveError”标志。 实际影响-如果您很不幸导致阵列故障(第一个驱动器),再加上第二个驱动器上的错误-阵列将进入一种状态,即使从驱动器上读取数据,该阵列也无法修复/重建阵列精细。 在这一点上,从THIS数组的角度来看,我并不真正担心这个问题,因为我已经撤消了内容并打算进行重构,但更多的是希望将来有一个解决之道。 ,因为这是我第二次受到它的困扰,而且我知道我已经看到其他人在论坛上问类似的问题。 对Synology的支持并没有多大用处(并且大多是无响应的),并且不会共享任何有关处理包装盒上突袭的信息。 / proc / mdstat的内容: ds1512-ent> cat /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] md2 : active raid5 sdb5[1] sda5[5](S) sde5[4](E) sdd5[3] sdc5[2] 11702126592 blocks super 1.2 level 5, 64k chunk, algorithm 2 [5/4] [_UUUE] md1 : active raid1 sdb2[1] sdd2[3] …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.