Articles of 套接字

如何衡量stdin和unix套接字的性能?

如何衡量stdin和unix sockets性能? 在GB || MB GB || MB每秒。 我的意思是测量stdin原始吞吐量,例如time cat 1TB_dump.txt > /dev/null ,但不影响猫时间执行。 和unix套接字一样。

如何处理VPS上同时打开的一个SMTP套接字?

我拥有一个用于托pipe大约30个域名的VPS。 在每个域我有几个电子邮件帐户。 共有超过150个帐户。 在过去的几周里,我注意到有时(一天几次,大部分是在高峰时间),有几封邮件没有发送,而是延期发送。 在maillog中有一个消息“拒绝连接”。 过了一段时间,他们最终成功发送。 有的在2-3小时后有一段时间过了5分钟后才发送,但是都发了。 我是一个网页devise师,具有良好的编程知识,但不幸的是在Linux(Centos7)方面经验不足。 自己无法find问题后,我到达了我的VPS的托pipe公司。 他们说,他们确实已经限制了所有的VPS 在当时只能打开一个SMTP套接字 。 他们这样做是为了防止垃圾邮件发送者将他们的IP(或整个IP范围)列入黑名单。 他们提供了我切换到专用或find另一个主机。 由于专用服务器的价格是VPS的价格的几倍,我真的不需要切换到专用(我已经提到,我主持30个小网站),我试图find解决这个问题的解决scheme。 目前,我强制重发的延期电子邮件 postqueue -f 命令。 但是我需要手动执行这个命令,并且和队列中的延期邮件一样多 。 更不用说需要不断地监视队列中的电子邮件。 显然这不是我的问题的解决scheme。 我试图安排一个crone每5分钟执行一次postqueue命令,但在第一次执行后,我得到了一些像Unknown命令postqueue或command not found或类似的错误的东西…我想这与环境variables有关,但是这是失败我现在的知识范围。 除此之外,如果在队列中有10个被拒绝的邮件,则每个cron执行只发送一个邮件。 所以最后一封邮件将在50分钟后发送,这仍然不是一个很好的解决scheme。 我需要一个cron来运行这样的事情每5分钟运行一次crone(或者其他) while (there are deferred emails in the queue) { postqueue -f } 出现了另一个问题:如果电子邮件由于另一个原因,而不是连接被拒绝,例如目的地主机不可达,那么该怎么办?比这个cron永远不会完成…!?! 一般来说,这个cron解决scheme的性能如何? 你有没有类似的问题的经验? 我如何生活在我的VPS这个SMTP套接字限制。 我应该find另一个主机或切换到专用? 这可能是相关的:我在我的VPS上使用centos 7,并且拥有用于域pipe理的Plesk面板。 任何帮助将是伟大的。 谢谢! 编辑: 我设法用这个命令安排一个cron / sbin / […]

当给定完整path时,mysql不会连接到符号链接套接字,而是与相对连接

所以我很困惑。 我有一个testing版本,开始打破,因为一个MySQL套接字试图创build这样一个深度嵌套的文件夹,其文件path名超过了108个字符的限制。 所以我的想法是把testing套接字运行用户主目录在一个类似的命名文件夹。 即: /home/nightlybuild/projects/……./myTestProject/output/db/connect.sock变成/home/nightlybuild/myTestProject/output/db/connect.sock 然后我在嵌套的目录中创build了一个符号链接: ln -s /home/nightlybuild/myTestProject/output/db/connect.sock /home/nightlybuild/projects/……./myTestProject/output/db/connect.sock 现在我就困惑了。 如果我试图通过传递任何相对path到套接字运行mysql通过该套接字,我可以连接,一切都按预期工作。 但是,如果我传递一个完整的绝对path插入,我得到一个无法连接错误。 作品:(从家里): mysql –socket=projects/……./myTestProject/output/db/connect.sock (不工作): mysql –socket=/home/nightlybuild/projects/……./myTestProject/output/db/connect.sock 我不明白如何完整的path可以打破它。 任何人有任何想法我可能做错了,甚至提示有关日志或我可以看看尝试获得有关该问题的更多信息? 干杯!

Debian-Machine上没有可用的缓冲区

我在debian机器上运行LAMP-Stack一段时间。 我以我习惯的方式进行configuration,从未产生奇怪的networking或内存问题。 在随机的随机日子里,我得到了一堆来自monit.d的关于mysql,exim,ssh和限制cpu使用情况的连接错误的邮件。 monit日志显示了很多“没有可用的缓冲区”。 没有我知道的事件,这可能触发这个事情,随机的日子和时间发生。 你有什么想法我可以解决这个问题吗? 先谢谢你! 程式: 的Apache2 PHP7-FPM mysqld的 monit.d 穆宁 CPU负载负载通常低于5%,RAM使用率低于50%。 服务器用于白天有5-10个活动用户的内部云。 部分monit.d日志: [CET Jan 27 22:57:38] error : Connection failed — No buffer space available [CET Jan 27 22:57:38] error : Cannot open a connection to the mailserver '127.0.0.1:25' — No buffer space available [CET Jan 27 22:57:38] error : Sendmail: […]

为什么我的unix套接字使用不同的ACL掩码创build到其他文件?

我正在部署一个Nodejs Express应用程序。 它将在与Nginx服务器相同的框中运行,该服务器将通过unix套接字向其请求代理。 但是,这个问题并不是针对Nodejs的。 快速应用程序以用户nodejs运行,而nginx以nginx运行。 我的计划是创build一个由nodejs for Express拥有的/sockets目录来插入套接字,并通过目录上的默认ACL授予对这些套接字的nginx访问权限。 随意告诉我这是否是一个愚蠢的想法,但请记住,这不是我的核心问题。 我通过以root用户身份运行目录来创buildACL, setfacl -Rd –mask -m nginx:rw /sockets setfacl -R –mask -m nginx:rwX /sockets 然后该目录具有以下ACL:(由我在表格中清晰可见) # file: /sockets # owner: nodejs # group: root user: : rwx user: nginx: rwx group: : rx mask: : rwx other: : rx default: user: :rwx default: user:nginx:rw- default:group: :rx default: […]

系统networking缓冲区泄漏/完全使用,在Windows x64上有大量的可用RAM。 如何诊断和解决?

这与这个问题有关,并将其扩展。 症状是相同的 – 2012R2 X64与64GB内存(21GB使用), ping和nslookup都工作正常,但IE浏览器将不会打开网页, net use X: \\share返回错误1450 “存在不足的系统资源请求的服务“,并且PuTTY提供错误”networking错误,没有可用的缓冲区空间“ 。 我可以按照这个问题的build议或增加各种TCP参数,但是我怀疑这个问题真的存在于某个进程或其他地方,如果可以的话,我想解决潜在的问题,因为它是经常性的。 问题是,大多数在线解决scheme似乎是指Windows XP和x86架构,而他们的解决scheme是“使用基于x64的系统”,所以我不确定如何使它们适应x64具有足够的内存。 或者,如果是单个进程泄漏内核缓冲区,那么如何查看每个进程的打开缓冲区计数,以便closures或避免负责泄漏或保留缓冲区的进程,而不用通过“试错”来终止用户和系统进程“? 相关的registry设置: [HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] "NonPagedPoolQuota"=dword:00000000 "NonPagedPoolSize"=dword:00000000 "SessionViewSize"=dword:00000030 "SystemPages"=dword:00000000 "SecondLevelDataCache"=dword:00000000 "SessionPoolSize"=dword:00000014 "DisablePagingExecutive"=dword:00000001 "PagedPoolSize"=dword:00000000 "PagedPoolQuota"=dword:00000000 "PhysicalAddressExtension"=dword:00000001 "LargeSystemCache"=dword:00000001 "DisablePageCombining"=dword:00000001 Poolmon输出: Memory:67045348K Avail:43088144K PageFlts: 26887 InRam Krnl:34360K P:998960K Commit:17896772K Limit:68093924K Peak: 21003948K Pool N: 863288K P:1038320K

获取systemd-journald(219)来侦听/ dev / log之外的其他地方

我想systemd-journald在systemd 219(在el7上,所以软件包是systemd-219-30.el7_3.9.x86_64)监听/run/systemd/journal/dev-log上的系统日志消息,并且让/dev/log成为该文件的符号链接 。 这是systemd-journald更新版本的默认行为。 股票/lib/systemd/system/sytemd-journald.socket看起来像这样: [Unit] Description=Journal Socket Documentation=man:systemd-journald.service(8) man:journald.conf(5) DefaultDependencies=no Before=sockets.target [Socket] ListenStream=/run/systemd/journal/stdout ListenDatagram=/run/systemd/journal/socket ListenDatagram=/dev/log SocketMode=0666 PassCredentials=yes PassSecurity=yes ReceiveBuffer=8M 我修改该文件以删除ListenDatagram=/dev/log行。 我创build了一个新的单元/etc/systemd/system/systemd-journal-dev-log.socket ,它看起来像: [Unit] Description=Journal Socket (/dev/log) Documentation=man:systemd-journald.service(8) man:journald.conf(5) DefaultDependencies=no Before=sockets.target IgnoreOnIsolate=yes [Socket] Service=systemd-journald.service ListenDatagram=/run/systemd/journal/dev-log Symlinks=/dev/log SocketMode=0666 PassCredentials=yes PassSecurity=yes ReceiveBuffer=8M SendBuffer=8M [Install] WantedBy=systemd-journald.service 我修改了/lib/systemd/system/systemd-journald.service以便它包括: Sockets=systemd-journald.socket systemd-journald-dev-log.socket 我重新加载systemd( systemctl daemon-reload ),启用新的套接字systemctl enable systemd-journald-dev-log.socket )并重新启动所有日志相关单元( systemctl restart […]

在Windows 7上接受套接字连接需要一秒多的时间

以下是我所做的: 我写了一个最小的Web服务器(使用Qt,但我不认为这是相关的)。 我在合法的Windows 7 32位上运行它。 问题: 如果我向Firefox,IE,Chrome或Safari发出请求,则需要大约一秒的时间,然后我的服务器才会看到有新的连接被接受。 线索: 使用其他客户端(wget,自己的testing客户端,只是打开一个套接字)比Firefox,IE浏览器,谷歌浏览器看到新的连接是毫秒的事情。 我安装了Apache并尝试了上面提到的客户端。 如预期的那样服务请求需要约50ms。 运行Windows XP(或在Linux下编译和运行相同的代码)时,该问题不可重现, 这个问题似乎只有当连接到本地主机时才会出现。 通过互联网连接并为连接提供服务的朋友只需要几毫秒。 在不同端口运行服务器对1秒延迟没有影响 以下是我尝试过的不幸的事情: 停止了Windows Defender服务 停止Windows防火墙服务 有任何想法吗? 这是Windows 7中的一些聪明的“安全function”吗? Apache为什么不受影响? 为什么只有浏览器受到影响?

更新MySQL:MySQL守护进程启动失败

当我yum update时,只是在CentOS上更新了我的MySQL。 我的网站扔了一些MySQL错误,我发现MySQL没有运行: # /etc/init.d/mysqld start MySQL Daemon failed to start. Starting MySQL: [FAILED] 我收到这个错误: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect 该文件不存在,也不在我的/tmp文件夹中。 MySQL升级错误: # mysql_upgrade Looking for 'mysql' as: mysql Looking for 'mysqlcheck' as: mysqlcheck Running 'mysqlcheck with default connection arguments mysqlcheck: Got error: 2002: Can't […]

phpmyadmin错误#2002无法连接到MySQL服务器

试图连接到我的MySQL服务器时,我在标题中出现错误。 我已经多次重新安装了MySQL和PHP,并根据我search的信息尝试了大量的命令行工作。 web.mysql正在运行,我知道我的mysql.sock存在,位于~/private/tmp/ ,也在~/tmp/ 。 我也有足够的硬盘空间。 我已经正确地安装并设置了phpMyAdmin,只是给“密码configuration授权”添加一个密码。 我也通过Sequel Pro连接到服务器。 为什么我不能通过phpMyAdmin连接到服务器? 我在运行Snow Leopard的64位Intel Mac上