问题列表 - 第8621页

在C中遇到fork(),pipe(),dup2()和exec()时遇到问题

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <wait.h>
#include <readline/readline.h>

#define NUMPIPES 2

int main(int argc, char *argv[]) {
    char *bBuffer, *sPtr, *aPtr = NULL, *pipeComms[NUMPIPES], *cmdArgs[10];
    int fdPipe[2], pCount, aCount, i, status, lPids[NUMPIPES];
    pid_t pid;

    pipe(fdPipe);

    while(1) {
        bBuffer = readline("Shell> ");

        if(!strcasecmp(bBuffer, "exit")) {
            return 0;
        }

        sPtr = bBuffer;
        pCount = -1;

        do {
            aPtr = strsep(&sPtr, "|");
            pipeComms[++pCount] = aPtr;
        } while(aPtr);

        for(i = 0; i < pCount; i++) {
            aCount = -1;

            do { …
Run Code Online (Sandbox Code Playgroud)

c fork pipe exec dup2

9
推荐指数
1
解决办法
3万
查看次数

Lustre,Gluster或MogileFS ?? 用于视频存储,编码和流媒体

这么多的选项和很少的时间来测试它们......我想知道是否有人有分布式文件系统的视频流和存储/编码经验.

我有很多巨大的视频文件(50GB到250GB),我需要存储在某个地方,能够将它们编码为mp4并从几个Adobe FMS服务器流式传输.处理所有这一切的唯一方法是使用分布式文件系统,但现在的问题是哪个?

到目前为止我的研究告诉我:

  • Lustre:成熟的成熟解决方案,被许多大公司使用,最好用> 10G文件是内核驱动程序.
  • Gluster:新的,不太成熟,基于FUSE意味着易于安装,但由于FUSE开销可能会更慢.最好处理大量的小文件〜1GB
  • MogileFS:似乎只适用于小文件~MB,使用HTTP进行访问?未来可能的FUSE绑定.

到目前为止,Lustre似乎是赢家,但我希望听到我所拥有的特定应用的真实体验.

此外,Hadoop,Redhat GFS,Coda和Windows DFS也可作为选项,因此欢迎任何体验.如果有人有基准,请分享.

经过一些实际经验后,这就是我所学到的:

  • 光泽:
    • 表现:惊人的快!我可以断言Lustre可以服务很多流,并且通过Lustre访问文件不会影响编码速度.
    • POXIS兼容性:非常好!无需修改应用程序即可使用光泽.
    • 复制,负载平衡和故障转移:非常糟糕!对于复制负载平衡我们和故障转移,我们需要依赖其他软件,如虚拟IP和DRDB.
    • 安装:最糟糕的!凡人都无法安装.需要非常具体的内核,光泽补丁和调整组合才能使其正常工作.目前的光泽补丁通常适用于与新硬件/软件不兼容的旧内核.
  • MogileFS:
    • 性能:适用于小文件但不适用于中型到大型文件.这主要是由于HTTP开销,因为所有文件都是通过HTTP请求发送/接收的,这些请求对base64中的所有数据进行编码,为每个文件增加了33%的开销.
    • POXIX兼容性不存在.所有应用程序都需要修改为使用mogilefs,因为大多数流服务器和编码工具都不了解MogileFS协议,因此它无法用于流/编码.
    • 通过一次访问多个跟踪器,可以在应用程序中实现开箱即用的复制和故障转移以及负载平衡.
    • 安装相对容易,大多数发行版中都有现成的软件包.我发现的唯一困难是设置数据库主从,以消除单点故障.
      • Gluster:
    • 性能:非常糟糕的流式传输.在10Gbps网络中,我无法达到超过几Mbps的速度.客户端和服务器CPU在大量写入时飙升.对于编码是有效的,因为CPU在网络和I/O之前已经饱和.
    • POXIS:几乎兼容.我使用的工具可以访问gluster挂载作为磁盘中的普通文件夹,但在某些边缘情况下,事情开始引起问题.检查gluster邮件列表,你会发现有很多问题.
    • 复制,故障转移和负载平衡:最好的!如果他们真的有效 Gluster非常新,它有很多bug和性能问题.
    • 安装太简单了.管理命令行非常棒,在多个服务器之间设置复制,条带和分布式卷并不容易.

定论:

不幸的是,结论是"没有单一的银弹".

目前,我们将Gluster3.2中的媒体文件放在复制卷中以进行存储和转码.只要您没有很多服务器,就可以避免地理复制和条带卷工作正常.

当我们要传输媒体文件时,我们将它们复制到通过DR:DB复制到第二个光泽卷的光泽卷.然后,wowza服务器从光泽卷中读取媒体文件.

最后,我们使用MogileFS来提供Web应用程序服务器中的缩略图.

video streaming microsoft-distributed-file-system

28
推荐指数
2
解决办法
2万
查看次数

如何获取属于自定义属性的属性?

我需要在自定义属性中找到应用自定义属性的属性的类型.

例如:

[MyAttribute]
string MyProperty{get;set;}
Run Code Online (Sandbox Code Playgroud)

给定MyAttribute的实例,我怎样才能获得MyProperty的Type描述符?

换句话说,我正在寻找System.Type.GetCustomAttributes()的反面

c# reflection attributes

10
推荐指数
1
解决办法
8735
查看次数

我应该在同一台服务器上托管网站和REST API还是拆分?

我有一个由Website和REST API组成的Web应用程序.我应该将它们托管在同一台服务器上还是应该将它们托管在不同的服务器上?"服务器"是指服务器集群 - 负载均衡器后面的几个服务器.

API主要是入站流量,网站 - 主要是出站.

如果重要 - 托管在Rackspace和/或AWS上.

这是我到目前为止所看到的:

在同一台服务器上使用网站和REST API的好处

  • 简单部署
  • 简单的缩放 - 速度很慢 - 只需启动另一个实例
  • 单负载平衡器配置
  • 简单监控
  • 简单,简单,简单......
  • 有效使用全双工网络(API - 入站,网站 - 出站)

分裂的好处

  • API重载不会影响网站加载时间
  • 详细监控(我将知道此时哪个组件使用资源)

任何意见?

谢谢

亚历山大

hosting scalability amazon-web-services

6
推荐指数
1
解决办法
2725
查看次数

如何从网页启动EXE(asp.net)

这是一个内部Web应用程序,我们希望Web页面包含指向Win32 EXE的多个实用程序的链接.EXE是我们信赖和生产的.(不在乎它是否可以运行或保存).我尝试了直接链接(例如C:\notepad.exe),它只在本地工作.(这将是网络上的一部分).尝试过File:///但没有用.IE7是需要的浏览器.

asp.net web-applications internet-explorer-7

29
推荐指数
4
解决办法
17万
查看次数

从HTML Canvas元素生成图像数据

从HTML canvas元素的内容生成图像数据的最佳方法是什么?

我想创建图像数据,使其可以传输到服务器(用户无需直接保存到文件).图像数据应采用通用格式,如PNG或JPEG.

在多个浏览器中正常工作的解决方案是首选,但如果每个解决方案都依赖于浏览器,则应针对最新版本的Firefox.

html javascript canvas

6
推荐指数
1
解决办法
9338
查看次数

如何加快简单加入

我不擅长SQL.

我正在寻找一种方法来加速像这样的简单连接:

SELECT
    E.expressionID,
    A.attributeName,
    A.attributeValue
FROM 
    attributes A
JOIN
    expressions E
ON 
    E.attributeId = A.attributeId
Run Code Online (Sandbox Code Playgroud)

我这样做了几十万次,随着桌子越来越大,它越来越多.

我正在考虑索引 - 如果我要加快单个表上的选择,我可能会在表达式上为表达式表放置非聚簇索引,而另一个用于属性表的(attributeName,attributeValue) - 但我不知道这是怎么回事可以申请加入.

编辑:表达式表上的expressionId(PK),attributeId(PK,FK)上已有聚簇索引,属性表上的attributeId(PK)上有另一个聚簇索引

我已经看到了这个问题,但我要求更通用的东西,可能更简单.

任何帮助赞赏!

sql-server performance join

12
推荐指数
2
解决办法
1万
查看次数

Java JTabbedPane,如何从按钮中选择一个选项卡?

如何通过单击按钮选择一个标签,就好像它被点击一样?我用Google搜索并查看了所有操作,但只有这么多...... :(

有人知道吗?

提前致谢!

java swing jtabbedpane

7
推荐指数
1
解决办法
2万
查看次数

如何查找某个进程正在操作的文件?

就我而言,它是"rsyslogd",

我发现它耗费高达170M的内存,这太多了,

我已经检查了位于/etc/rsyslog.conf的配置文件

然后检查里面写的每个文件,

但是徒劳无功

如何查找当前正在操作的文件并查看正在进行的操作?

[root@slvdb2 log]# lsof -p `pidof rsyslogd`
COMMAND   PID USER   FD   TYPE             DEVICE    SIZE       NODE NAME
rsyslogd 1965 root  cwd    DIR                8,1    4096          2 /
rsyslogd 1965 root  rtd    DIR                8,1    4096          2 /
rsyslogd 1965 root  txt    REG                8,1  259072    2818209 /sbin/rsyslogd
rsyslogd 1965 root  mem    REG                8,1  142176    1097807 /lib64/ld-2.8.so
rsyslogd 1965 root  mem    REG                8,1 1804136    1097817 /lib64/libc-2.8.so
rsyslogd 1965 root  mem    REG                8,1  143096    1097871 /lib64/libpthread-2.8.so
rsyslogd 1965 root  mem    REG …
Run Code Online (Sandbox Code Playgroud)

linux bash rsyslog

1
推荐指数
2
解决办法
455
查看次数

Python OOP与PHP OOP相比如何?

我基本上想知道Python是否有任何像PHP那样的OOP缺点.PHP一直在为最后几个版本开发他们的OOP实践.它在PHP中越来越好但它仍然不完美.我是Python新手,我只是想知道Python的OOP支持是更好还是仅仅是可比的.

如果Python OOP中存在一些不遵循正确的OOP实践的问题,我肯定想知道这些.例如,PHP据我所知,不允许多重继承.

感谢大家!

编辑:如何支持公共和私人?或支持变量类型.我认为这些对于构建OOP软件非常重要.

php python oop comparison

16
推荐指数
3
解决办法
3422
查看次数