AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[scheduler](server)

Martin Hope
PraMiD
Asked: 2020-06-15 07:49:04 +0800 CST

由于大的空闲时间(rsync、cp、..),文件复制操作的性能低下

  • 1

我目前正在将大型目录树从外部 HDD 复制到服务器的内部存储。复制操作的性能基本相当不错,即通过USB2连接外置硬盘时为35MB/s。

但是,我只获得了大约 30 秒的性能,然后复制过程没有得到任何 CPU 时间。这意味着,rsync(以及 cp)不会复制任何数据,不会更新其标准输出,或对 SIG-TERM 做出反应。大约 1 分钟后,它再次被调度并以 35MB/s 的速度再次复制 30 秒,然后再没有任何东西,依此类推。

有谁知道这里会发生什么或给我命名任何工具来调查正在发生的事情?我已经将 rsync 进程的 nice 值增加到 19,但这并没有改变任何东西。在rsync的空闲时间内,整个系统处于空闲状态(没有其他IO,没有其他占用CPU的进程。基本上整个系统都是空闲的)。在活动期间,rsync 进程具有三个线程,它们在“运行”、“不可中断睡眠”和“可中断睡眠”之间切换。在非活动期间,所有线程要么处于“不可中断睡眠”状态,要么处于“可中断睡眠”状态。正因为如此,我认为 rsync 必须等待一些持久的 IO 操作。但是我怎么能确定什么操作需要这么多时间呢?

该系统在 5.4.34-1-pve linux 内核上运行,内部存储是 LVM 上的 LUKS 加密 ZFS 文件系统。LVM 位于 mdadm RAID 5 之上。我用来启动 rsync 的命令是:rsync -ah --no-compress --progess

感谢您的任何建议!

io rsync copy scheduler
  • 1 个回答
  • 355 Views
Martin Hope
Tamilvanan
Asked: 2017-03-15 22:19:43 +0800 CST

相同间隔的多个 crons 失败 - linux crontab

  • 0

在我的服务器中,我安排了以下一组 cron 文件。

00 21 * * * /bin/sh /path/db_backup.sh
*/2 * * * * /usr/bin/php /path/file1.php
*/2 * * * * /usr/bin/php /path/file2.php
...
*/2 * * * * /usr/bin/php /path/file7.php
*/2 * * * * /usr/bin/php /path/file8.php

所有的 cron 文件都按时工作。但是最后两个 php 文件 7 和 8 没有运行。

是否由于以前的 crons 花费了太多时间或任何其他原因而被跳过?

请帮我解决这个问题。提前致谢。

linux php cron scheduler sh
  • 1 个回答
  • 133 Views
Martin Hope
GP92
Asked: 2016-10-03 09:35:50 +0800 CST

Sun Grid Engine (SGE) 中的 h_rss 和 h_vmem 有什么区别?

  • 4

据我了解,

  • mem_free可以指定在具有可用内存 = 的主机中提交作业mem_free,而
  • h_vmem是作业可以消耗的内存的硬限制,如果作业达到h_vmem,作业会崩溃?我认为我们可以将h_vmem主机的总物理内存设置为接近总物理内存,这样作业就不会开始使用交换并减慢服务器速度。

那是什么h_rss?它似乎与的定义相同h_vmem.

还是我误解了h_vmem?h_vmem用于保留它可能需要的额外内存而不是所需的最小内存()mem_free?但是如果超过内存不要崩溃,所以作业可以超过h_vmem?

如果我的第二种解释h_vmem是正确的,那么我猜,对于要在主机中提交的作业,该作业必须同时满足mem_free和h_vmem(给定h_vmem不是 INFINITY)。

如果我的第一个解释h_vmem是正确的,那么我想,对于要在主机中提交的作业,该作业可以mem_free单独满足而无需满足h_vmem,因为它只保留可用空间,如果没有可用空间,它没关系?

cluster gridengine scheduler grid
  • 2 个回答
  • 7359 Views
Martin Hope
xioxox
Asked: 2012-07-06 08:16:32 +0800 CST

不错的水平不适用于 Linux

  • 6

我有一些高度浮点密集型进程执行很少的 I/O。一个叫做“xspec”,它计算一个数值模型并每秒将一个浮点结果返回给主进程(通过标准输出)。它在 19 级很好。我有另一个简单的过程“cpufloattest”,它只是在一个紧密的循环中进行数值计算。这不是很好。

我有一个禁用超线程的 4 核 i7 系统。我已经开始了每种类型的流程中的 4 个。为什么 Linux 调度程序 (Linux 3.4.2) 没有正确限制 niced 进程占用的 CPU 时间?

中央处理器:56.2%us、1.0%sy、41.8%ni、0.0%id、0.0%wa、0.9%hi、0.1%si、0.0%st
内存:总计 12297620k,已使用 12147472k,空闲 150148k,缓冲区 831564k
交换:总共 2104508k,已使用 71172k,免费 2033336k,缓存 4753956k

  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令                                         
32399 jss 20 0 44728 32m 772 R 62.7 0.3 4:17.93 cpufloattest                                    
32400 jss 20 0 44728 32m 744 R 53.1 0.3 4:14.17 cpufloattest                                    
32402 jss 20 0 44728 32m 744 R 51.1 0.3 4:14.09 cpufloattest                                    
32398 jss 20 0 44728 32m 744 R 48.8 0.3 4:15.44 cpufloattest                                    
 3989 jss 39 19 1725m 690m 7744 R 44.1 5.8 1459:59 xspec                                           
 3981 jss 39 19 1725m 689m 7744 R 42.1 5.7 1459:34 xspec                                           
 3985 jss 39 19 1725m 689m 7744 R 42.1 5.7 1460:51 xspec                                           
 3993 jss 39 19 1725m 691m 7744 R 38.8 5.8 1458:24 xspec                                           

如果我启动 8 个 cpufloattest 进程,调度程序会按照我的预期进行,其中 4 个很好(即 ​​4 个占用大部分 CPU,4 个占用很少)

linux nice scheduler
  • 5 个回答
  • 5099 Views
Martin Hope
Steve Lorimer
Asked: 2012-06-27 18:16:17 +0800 CST

cpusets 不工作 - 线程没有在我指定的 cpuset 中运行?

  • 1

我曾经cpuset屏蔽一些cpus供一些实时线程独占使用。

显示 cpuset 配置,测试应用程序RealtimeTest1正在运行并将其任务移至 cpusets:

$ cset set --list -r
cset: 
         Name         CPUs-X    MEMs-X Tasks Subs Path
 ------------   ---------- - ------- - ----- ---- ----------
         root         0-23 y     0-1 y   279    2 /
       system 0,2,4,6,8,10 n       0 n   202    0 /system
       shield 1,3,5,7,9,11 n       1 n     0    2 /shield
RealtimeTest1      1,3,5,7 n       1 n     0    4 /shield/RealtimeTest1
      thread1            3 n       1 n     1    0 /shield/RealtimeTest1/thread1
      thread2            5 n       1 n     1    0 /shield/RealtimeTest1/thread2
         main            1 n       1 n     1    0 /shield/RealtimeTest1/main

我可以询问cpuset文件系统以显示我的任务应该固定到我请求的 cpus 上:

/cpusets/shield/RealtimeTest1 $ for i in `find -name tasks`; do echo $i; cat $i; echo "------------"; done

./thread1/tasks
17651 
------------
./main/tasks
17649 
------------
./thread2/tasks
17654
------------

此外,如果我使用sched_getaffinity,它会报告cpuset它的作用——thread1 在 cpu 3 上,而 thread2 在 cpu 5 上。

但是,如果我运行top -p 17649 -Hwithf,j调出last used cpu,它表明线程 1 在线程 2 的 cpu 上运行,而主线程在systemcpuset中的一个 cpu 上运行

(注意线程 17654 正在运行 FIFO,因此线程 17651 被阻塞)

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  P COMMAND                                                                                                                                                                                             
17654 root      -2   0 54080  35m 7064 R  100  0.4   5:00.77 3 RealtimeTest                                                                                                                                                                                         
17649 root      20   0 54080  35m 7064 S    0  0.4   0:00.05 2 RealtimeTest                                                                                                                                                                                         
17651 root      20   0 54080  35m 7064 R    0  0.4   0:00.00 3 RealtimeTest    

此外,寻找其运行/proc/17649/task的last_cpu每个任务:

/proc/17649/task $  for i in `ls -1`; do cat $i/stat | awk '{print $1 " is on " $(NF - 5)}'; done
17649 is on 2
17651 is on 3
17654 is on 3

所以报道是一回事,但现实是另一cpuset回事sched_getaffinity

我会说这cpuset不起作用?

我的机器配置是:

$ cat /etc/SuSE-release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 1
$ uname -a
Linux foobar 2.6.32.12-0.7-default #1 SMP 2010-05-20 11:14:20 +0200 x86_64 x86_64 x86_64 GNU/Linux

更新:

此外,我在调用之前和之后进行解析/proc/pid/task/tid/stat和调用,并且我也在固定之后做一个尝试让线程移动......sched_getcpu()cset --movesched_yield()

这是一个示例输出:

13:12:56 INFO before pinning thread 17508 reports lastCpu=0, currCpu=1
13:12:56 INFO pinning thread 17508 to cpu 3 (/shield/RealtimeTest1/thread1)
13:12:56 INFO SetAffinity cset response:
    cset: moving following pidspec: 17508
    cset: moving 1 userspace tasks to /shield/RealtimeTest1/thread1
    cset: done
13:12:56 INFO after pinning thread 17508 reports lastCpu=0, currCpu=1
13:12:56 INFO after sch_yld thread 17508 reports lastCpu=0, currCpu=1

所以线程不会立即移动到它的新 cpuset,甚至在sched_yield

这可能是 SLES 11 / SP 1 问题吗?

linux scheduler
  • 1 个回答
  • 1648 Views
Martin Hope
Chuck
Asked: 2010-03-17 13:12:35 +0800 CST

除非我登录到服务器,否则计划任务无法启动

  • 0

任务需要打开 CMD 窗口并传递 net use 命令,然后执行 DIR 命令,将输出传输到服务器上的文件中。以我(系统管理员)身份或使用其中一个系统帐户登录,只有在我物理登录到服务器时才会运行任务。运行为批处理文件在两个用户(我和服务帐户)的安全属性中设置,为所有目录授予安全性等。它几乎就像一个计划任务,因为它没有物理连接到显示器无法创建CMD 窗口并传递 WinID 以便可以发送命令。我正在猜测。任何人都知道一个文档,该文档解释了如果通过计划任务完成并且没有附加用户与该任务相关联,服务器如何处理窗口的启动?如果我登录该框并运行它们运行良好的计划任务,但不会产生错误或事件日志条目,然后只显示它成功运行并设置下一次运行时间。如果登录复选框打开和关闭,都尝试过运行,没有任何区别。其他任务工作正常,除了它们在没有显示写入或更新的情况下在本地驱动器上运行,所以我猜如果没有显示器连接到登录用户,系统要么无法实例化窗口,要么它可以如果它试图创建一个虚拟屏幕,则不要建立一个点。您可能认为它只是创建一个内存映射,然后将其映射到要显示的设备,但似乎并非如此,但我找不到有关系统如何处理计划任务以及如何调用的文档它可以写入的虚假或虚拟屏幕,因此看起来用户已连接。

task scheduler
  • 2 个回答
  • 931 Views
Martin Hope
Bertolt
Asked: 2010-02-18 00:48:51 +0800 CST

在哪里可以找到 Windows 调度程序状态代码的完整列表?

  • 1

我在添加到 Windows 调度程序的任务时遇到问题,现在我正在尝试调试它。它返回状态码 267011(十六进制:41303)。在哪里可以找到描述 Windows 调度程序状态代码的完整参考?

到目前为止,我唯一找到的就是这个文件。但在我看来,它没有提供足够的信息。

windows scheduler
  • 1 个回答
  • 2697 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve