我可以使用什么 Linux 命令/程序来告诉我 Linux 桌面具有哪种类型的 CPU 插槽?
我在 Windows 上使用 CPUZ 或 SIW,我可以在 Linux 上使用“cat /proc/cpuinfo”来获取拥有者的其余信息,但它没有告诉我 CPU 是哪个插槽。
谢谢。
我设置了一个类似于这里教程的系统。
我在 nginx 连接到 php5-fpm 套接字时遇到了问题,但据我所知,套接字上的权限是正确的......你能帮我一把吗?
2011/04/14 15:31:24 [crit] 13147#0: *1 connect() to unix:/var/run/php5-fpm.socket 在连接到上游时失败(2:没有这样的文件或目录),客户端:74.129.***.***,服务器:app.mydomain.com,请求:“GET /phpinfo.php HTTP/1.1”,上游:“fastcgi://unix:/var/run/php5-fpm .socket:", 主机: "app.mydomain.com" root@app0:/# ls -l /var/run/php5-fpm.socket srw-rw-rw-1 www-data www-data 0 Apr 14 15:51 /var/run/php5-fpm.socket root@app0:/# ps 辅助 | grep fpm 根 13315 0.0 1.9 168276 4948 ? Ss 15:51 0:00 /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/main.conf www-data 13316 0.0 2.1 168672 5492 ? S 15:51 0:00 /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/main.conf root@app0:/# ps 辅助 | grep nginx 根 13341 0.0 0.4 33200 1036 ? ss …
我有一个本地 postgres 服务器正在运行(在 ubuntu linux 上)。它通过套接字文件侦听:
$ ls -la /var/run/postgresql/
total 8
drwxrwsrwx 2 postgres postgres 100 2011-04-15 19:06 .
drwxr-xr-x 26 root root 1100 2011-04-15 19:12 ..
-rw------- 1 postgres postgres 5 2011-04-15 19:06 8.4-main.pid
srwxrwxrwx 1 postgres postgres 0 2011-04-15 19:06 .s.PGSQL.5433
-rw------- 1 postgres postgres 34 2011-04-15 19:06 .s.PGSQL.5433.lock
Run Code Online (Sandbox Code Playgroud)
我可以在命令行上正常连接到服务器:
$ psql -d gis -U rory
psql (8.4.7)
Type "help" for help.
gis=# \q
$ psql -d gis
psql (8.4.7)
Type "help" for help.
gis=# \q
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 …
我开始尝试使用 websockets。
有谁知道提供 websocket“通道”的持久存储的 websockets 服务器(开源或付费)?我发现的所有示例都没有解决持久性问题——如果 websockets 服务器出现故障,所有“通道”数据都会丢失。
诸如 Pusher 之类的服务并没有真正讨论它们是否解决了持久性问题(我还没有收到技术支持的回复)。
很高兴自己动手,但不想重新发明轮子。
编辑:
我不是在寻找 websockets 101 信息。这是容易获得和理解的。
我正在寻找支持 websockets 并具有持久存储 websocket 数据的服务器(开源或付费),以便在服务器发生故障的情况下,新服务器可以接管原来停止的服务器。
两个主要目的: 1. 支持 websockets 网络工作组设想的故障转移场景http://tools.ietf.org/html/draft-ibc-websocket-dns-srv-02#section-5.1(最重要的是让错过的消息当客户端连接到故障转移服务器时发送) 2. 支持新订阅者必须接收所有过去发布的消息的场景。
当然,这可以在应用程序层处理……但这不是我想要的。
编辑
因此,经过一些研究,以下安装的选项似乎是最强大的:
看起来“真实”的托管服务
如果 websockets 不可用,上述所有服务都可以优雅地回退到其他通信方法。
我找不到任何提供“开箱即用”集群、故障转移和持久消息存储来回放历史记录的开源。有一些项目可以作为很好的起点,但并不是我正在寻找的。
我正在建立一个 Django 网站以使用 memcached 来缓存其页面。
(每个页面的内容根本不会经常改变,所以我希望大部分站点大部分时间都由 memcached 提供服务,从而能够合理地处理大量流量。)
网站和 memcached 都将在一台虚拟服务器上运行,在 Debian Squeeze 上运行。
鉴于这种设置,我想我可以将 memcached 设置为通过 Unix 域套接字(请参阅http://code.google.com/p/memcached/wiki/NewConfiguringServer#Unix_Sockets)而不是通过网络接口进行侦听。虽然我的虚拟服务器有相当广泛的防火墙,因为我只需要一个本地用户(即 Django 站点)可以访问 memcached,我想我最好还是限制它。
当 memcached 和它的客户端都在同一台服务器上时,让 memcached 监听 Unix 域套接字有什么缺点吗?例如,Unix 域套接字可能比侦听 127.0.0.1 慢吗?
(为这样一个新手问题道歉——你可能已经知道,我以前没有使用过 memcached,也没有用过 Unix/Linux。)
我是 Windows 网络的新手。当人们谈论 Windows 平台上的 TCP 调优时,他们总是提到 TCP 窗口大小。我想知道 Windows 是否使用“套接字缓冲区大小”的概念?
在 Windows XP 上,TCP 窗口大小是固定的。我们可以使用 TCPWindowSize 注册表值来设置它。套接字缓冲区大小如何?我们如何在 Windows 上设置套接字缓冲区大小?我们可以将其设置为与 TCP 窗口大小不同的值吗?
我们正在使用 Express 3 运行 Node Socket.io 服务器。服务器使用Forever进行监控。服务运行良好,但 CPU 一整天都在增长,直到达到 90% 以上,然后突然回落到约 20%,如下图所示。我相信下降是由 Forever 重新启动应用程序引起的。

我想知道的是;
我认为这可能与 Socket.io 在用户断开连接后不清理资源有关,尽管文档说 Socket.io 会自动管理它。
任何帮助将不胜感激,这个问题使管理我们的服务器变得非常困难。请让我知道这个问题是否更适合 StackOverflow。
更新:经过更多研究,似乎 CPU 与连接数没有直接关系。我们的临界质量似乎是大约 1500 个并发连接,如下所示:
有时我们可以在只有 500 个连接的情况下 100% CPU,其他时候它的 1500 个连接。我知道发送消息的速率有很大的影响,但是速率是相当一致的。
如果客户端加入服务器,则每个连接中都有一个本地端口和一个远程端口。如果超过 65535 个客户端尝试加入我的服务器,会发生什么?
这可能看起来像一个已经讨论过/回答过的问题。但我专门寻找在任何地方都找不到明确回答的信息。
我有一个 Nginx + php-fpm 设置,它使用 unix 套接字将 Nginx 与后端 php-fpm fastcgi 进程对话。最近我听说基于 unix socket 的连接不像基于 tcp 的连接那样可扩展。不确定这里的限制因素是什么,尤其是当我从同一主机运行所有内容时。
我可以增加每个系统或用户(nginx)的最大文件描述符。我还可以增加每个 nginx 工作进程的这个限制。最大文件描述符是限制因素吗?
我在此设置中配置的网站很少,并且最大套接字(每个网站一个)。我使用的少于 50 个。当多个 nginx 线程在高负载下与后端的多个 php-fpm 实例通信时,每个套接字是否有最大并发连接数限制?或者,如果并发性非常高,实际上什么可以限制套接字允许这些连接?
是否还有其他因素会影响性能,如锁、磁盘 io 性能等?
我有一个运行原始 IP 套接字的应用程序,该套接字的目标由通过“ip route add”命令安装的路由控制。这些路由在套接字的生命周期内可能会发生变化(例如,因为下一跳发生变化)
简化,假设我有 2 个接口,eth0和eth1. 我也有一个默认路由,通过eth0.
例如10.10.10.10,原始套接字的端点是eth1 具有地址100.0.0.1,我在原始套接字的生命周期中执行以下操作:
ip -f inet route delete 10.10.10.10
ip -f inet route add 100.0.0.2 dev eth1
ip -f inet route add 10.10.10.10/32 via 100.0.0.2 dev eth1
Run Code Online (Sandbox Code Playgroud)
现在我看到的是,在此操作流量正确通过eth1几秒钟后,它会出错(通过 eth0)一小段时间(不到半秒),然后又正确(就我永久看到的而言) )。
所以我的主要问题是: - 任何人都可以解释这里可能出现的问题吗?我尝试ip route flush cache在前面提到的序列之后添加,但没有做任何事情。我目前对为什么流量有时会下降感到困惑。我认为这要么是路由命令中的计时问题,要么是其他一些触发器在一瞬间禁用了路由,但我的选择已经用完了。
我曾尝试使用SO_BINDTODEVICE选项在我的原始套接字,但很可惜这并没有帮助很大,主要区别是,当业务出现问题它没有发出可言,因为它会去了错误的接口。但是,我希望的是这会将 errno 设置为 E_CANNOTROUTE 之类的东西(这不存在),因此我可以捕获它并重试发送数据包。它目前没有这样做,但是有没有办法可以捕捉到这样的失败?我(几乎)完全控制了系统和运行套接字的应用程序。
我知道可行的一种解决方案是不使用 L3 原始套接字,而是使用AF_PACKET套接字(并且我自己也使用 ARP/ND),但我现在还不想这样做。
通过更改此路由更改行为,我改进了系统中的行为。当我必须更新下一跳时,我现在会查看已安装的路由并根据该路由执行操作:
socket ×10
linux ×2
connection ×1
cpu-usage ×1
debugging ×1
durability ×1
failover ×1
memcached ×1
memory-leak ×1
networking ×1
nginx ×1
node.js ×1
php-fpm ×1
port ×1
postgresql ×1
routing ×1
tcp ×1
tcp-window ×1
tcpip ×1
windows ×1