我在运行Mac OS X 10.5的机器上列出了一个进程(守护进程)的打开文件: >lsof -p 89 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME … xxxxx 89 xxxxxxxx 9u unix 0x34f8990 0t0 ->0x34f8880 我想find一种方法来打开这个套接字并写入它。 (这是我这次的痴迷..) 如何find基础文件的i-node /名称以达到该套接字? 有没有办法来解决这个地址0x34f888从shell脚本? 如果不是这样,如何编程? 作为一个评论,我已经启动了netstat命令并得到这个结果: > netstat -u Active LOCAL (UNIX) domain sockets Address Type Recv-Q Send-Q Inode Conn Refs Nextref Addr … 34f8990 stream 0 0 0 […]
短版本:如何让Linux服务器上的Yast防火墙允许套接字随机(通过os)select的端口连接? 更长的版本:我的较大的Java程序的一部分有一个客户端连接到服务器使用套接字。 初始连接是通过一个ConnectionManager在特定的端口完成的,它给客户端一个连接的端口和密码。 我最初select端口的方式是通过我在防火墙允许的端口列表(全部在49152以上)。 我注意到这个新的连接会随机工作,或拒绝连接。 我的结论是,closures或使用其他东西的端口(试图closures防火墙,没有帮助)。 然后有人build议,我让os通过不指定端口号(按照此构造函数使用0: JavaDoc )来select端口。 这个挑选了一个免费的端口,当防火墙closures时,这个端口是完美的。 但是,防火墙会阻止连接,并且客户端超时。 无论如何设置Yast防火墙允许sockets,而不会过度暴露服务器? 或者,我可以/应该指定一个端口号的范围为Javaselect一个开放的,并允许这些端口? 注意:我最初问这个在stackoverflow,并build议在这里发布。 它在那里完全一样: StackQuestion 。
我们正尝试使用Erlang定制应用程序(使用Erlang版本R15B)将大量文件从networking共享转移到Openstack。 在传输大约20k个文件之后,Erlang进程开始返回enobufs错误,导致它无法build立到OpenStack的HTTP连接。 同样,在同一个框上运行的C#代码不能再打开套接字,导致在这个问题中看到的错误缺乏足够的缓冲空间 。 closures所有自定义应用程序并重新启动不会缓解这种情况。 打开连接的数量从未超过300个连接,但通常包括TIME_WAIT时进入2k范围。 连接不开放,但正在迅速打开和closures。 我能find的所有文章似乎都提到了“短暂的”端口限制,但似乎并不像我们所能达到的那样,closuresErlang应用程序并没有带来任何改进。 有没有其他的东西可以缓冲空间,而不是正确地释放它?
我正在使用mod_itk作为MPM来提高共享环境中的安全性。 我也有一个我主持的VHosts之一的Firefox同步服务器。 该虚拟主机通过AssignUserId user group限制到某个用户。 问题是socket /var/run/wsgi…whatever.sock是chmodded srwx——并且由Apache的wwwrun拥有。 当我configuration虚拟主机 WSGIProcessGroup sync WSGIDaemonProcess sync user=djechelon group=djechelon processes=1 threads=5 我仍然得到了Apache想要访问一个无法访问的套接字的错误,并且因为这个错误。 是否有可能configurationmod_wsgi为了创build不同的拥有不同的所有者为不同的应用程序套接字或以不同的方式(不太安全)chmod其套接字? 目前,我正在运行Firefox Sync作为唯一的WSGI应用程序。 把它移动到不AssignUserId的虚拟主机可以解决这个问题,但会迫使我改变URL(并购买额外的SSL证书),所以我不会考虑这个
我们只有一台服务器出现生产问题,并且在TIME_WAIT状态下的性能与大量套接字相关。 没有把这个问题描绘成一个巨大的背景,我们基本知道,每当服务器速度很慢时,大约80%的服务器套接字都处于TIME_WAIT状态,这当然是通过运行netstat看到的)。 具体而言,因为TIME_WAIT超时而消失,当我们的服务器很慢时,我们会看到这些TIME_WAIT非常频繁地出现(大约5-10分钟)。 我做了一些挖掘,看到TIME_WAIT发生在服务器closures一个活动的连接时,但是保持它在任何延迟的数据包通过。 最终TIME_WAIT超时。 无论如何,看看为什么一个单独的套接字进入TIME_WAIT状态开始? 这是CentOS 5 – Linux是否将这些信息var/logs在var/logs任何地方,或者是否有任何方法可以执行tcpdump并查找导致TIME_WAIT的特定模式? 提前致谢。
今天早些时候,我更新了一个服务器上的软件包。 其中一个包是php5-fpm的更新,这似乎破坏了我使用unix:/var/run/php5-fpm.sock能力unix:/var/run/php5-fpm.sock 。 免责声明 :我最近才开始使用Linux; 我不完全明白这里发生了什么。 我已经回顾了很多其他的问题,但一直没能find答案我的问题,这是我得到一个502错误的网关错误,如果我尝试使用php5-fpm.sock而不是传递到127.0.0.1:9000 。 以下是一些基于其他问题的相关细节: 我的php5-fpm进程正在运行。 我的/etc/php5/fpm/pool.d/www.conf文件有listen = /var/run/php5-fpm.sock 我的服务器块有fastcgi_pass = unix:/var/run/php5-fpm.sock php5-fpm.sock 确实存在于/var/run/ 。 当升级php5-fpm时,它问我是否想覆盖我的www.conf。 我检查了差异,维护者文件和我的唯一变化是维护者的listen = 127.0.0.1:9000设置为默认值。 select覆盖并完成升级php5-fpm之后,我打开/etc/php5/fpm/pool.d/www.conf并将listen = /var/run/php5-fpm.sock改为listen,就像它已经事先设置。 然后我重新启动了php5-fpm,然后按照nginx的顺序。 我现在得到一个502时,访问该域名,并在一个完整的损失。 如果我在我的主机文件中将www.conf和fastcgi_pass中的listen更改为127.0.0.1:9000 ,则一切正常。 如果有问题,我正在使用Ubuntu 12.04LTS。 非常感谢您的帮助。
问题 我需要在计算机启动过程中通过TCP套接字发送消息到服务器。 我们使用的是Ubuntu 14.04,因此,默认情况下,必须使用Upstart作为系统初始化。 (我们也有运行Ubuntu 16.04的其他计算机可以使用systemd,所以我试图保持shell脚本与系统初始化文件分开) 当前解决scheme 目前我为客户端使用两个文件:一个upstart .conf文件和一个shell脚本文件。 新贵档案 新贵档案(我们称之为foo.conf)有以下内容: #!upstart description "Send Message on Startup" start on (local-filesystems and net-device-up and runlevel [2345]) exec /opt/foo/foo.sh shell文件 shell文件(我们将其称为foo.sh)具有以下内容 #!/bin/bash echo "Sending update message…" echo "Message" | nc server-hostname 9999 echo "Completed sending update message." 症状 当我重新启动具有这些文件的计算机时,我在日志文件中得到以下内容: Sending update message… Completed sending update message. 但是,服务器永远不会收到消息。 […]
在比较RH Linux和Solaris之间的java TCP套接字性能时,我的一个testing是通过使用java客户端发送string并从java echo服务器读取回复来完成的。 我测量了发送和接收数据所花费的时间(即回程往返)。 testing运行100,000次(更多发生的结果相似)。 在我的testing中,Solaris的平均速度比RH Linux快25/30%,在默认系统和networking设置的相同计算机上,相同的JVM参数(如果有的话)等等 我不明白这么大的差别,是否有一些我缺less的系统/networking参数? 所使用的代码(客户端和服务器)显示如下,如果有人有兴趣运行它(发生次数必须在命令行中给出): import java.io.*; import java.net.*; import java.text.*; public class SocketTest { public final static String EOF_STR = "EOF"; public final static String[] st = {"toto" ,"1234567890" ,"12345678901234567890" ,"123456789012345678901234567890" ,"1234567890123456789012345678901234567890" ,"12345678901234567890123456789012345678901234567890" ,"123456789012345678901234567890123456789012345678901234567890" }; public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException { double mean = 0.0; […]
前简报: 尽pipe我的问题目的很广泛,但我正在处理连接到php-fpm(fcgi)的nginx,它通过本地套接字(/tmp/somesocket.socket)提供。 Nginx具有保持与fcgi后端连接的设置( http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_keep_conn )。 这是我的问题所涉及的。 题: 在linux中,当连接到本地套接字时,存在Keepalive这样的事情吗? 有一个连接保持活着删除(甚至一点点)与连接的创build/拆卸相关的一些开销? 谢谢。
我想澄清一些关于使用nginx通过一组瘦服务器代理请求的疑问( http://code.macournoyer.com/thin/ )。 我已经阅读了许多有关使用UNIX套接字而不是TCP连接的博客文章,我唯一的疑问是关于多服务器configuration,其中集群分布在多台计算机上,代理服务器充当前端。 我如何分享UNIX套接字? 我应该共享包含.sock文件的目录吗?还是有一些我错过了? 你们如何处理这种部署? ps hhttp://macournoyer.wordpress.com/2008/01/26/get-intimate-with-your-load-balancer-tonight/