Articles of Debian

Apache在“读取请求”时被卡住,PID占用100%的CPU

最近,与某些服务器升级(虽然有各种各样的事情发生了变化)有些相似,但是Apache开始结束了一些处于“读取请求”状态的进程。 每个得到这个状态的PID占用100%的CPU,并且与它有很less的一致性,另一个卡住的进程(根据lsof) – 有些是开放的TCP / IP连接,有些是等待的,有些只是在www上进行监听。 模式如下: 重启apache 等一下(分钟) 得到僵尸“读取请求”的过程,CPU开始上升 更多的僵尸进来,所有不与任何明显的事情相吻合 根据我上次注意到的情况,CPU负载可以达到15-40 GOTO 1 这整个周期持续大约30分钟到4小时,这取决于我能否及时执行步骤1。 服务器状态给我: R_.__.K._K.._._…._……..W…………………………….. ………………………………………………………. ………………………………………………………. ………………………………………………………. Scoreboard Key: "_" Waiting for Connection, "S" Starting up, "R" Reading Request, "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup, "C" Closing connection, "L" Logging, "G" Gracefully finishing, "I" Idle cleanup of worker, "." […]

PHP的MySQL扩展无法正常工作

在Debian服务器中,在安装和删除SquirrelMail(一些降级和升级php5,mysql …)之后,PHP的MySQL扩展已经停止工作。 我已经安装了php5-mysql,当我尝试通过php-cli连接到数据库时,我连接成功,但是当我尝试从Apache服务器连接时,我无法连接。 这个脚本,由php5-cli运行: echo phpinfo(); $link = mysql_connect('localhost', 'user, 'password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); 打印phpinfo,其中包括“/etc/php5/cli/conf.d/mysql.ini”,以及所有configuration的MySQL部分:SOCKET,LIBS …然后打印“Connectes successfully”。 但是当通过web浏览器访问的apache运行时,它显示phpinfo,其中包括“/etc/php5/apache2/conf.d/mysql.ini”,但MySQL部分丢失,并且脚本死亡打印“致命错误:调用未定义的函数mysql_connect()“。 请注意,“/etc/php5/cli/conf.d/mysql.ini”和“/etc/php5/apache2/conf.d/mysql.ini”实际上是相同的configuration,因为我已经在debian的结构: /etc/php5/apache2 /etc/php5/cgi /etc/php5/cli /etc/php5/conf.d 而且都指向同一个目录: /etc/php5/apache2/conf.d -> ../conf.d /etc/php5/cli -> ../conf.d /etc/php5/conf.d/mysql.ini由一行组成: extension=mysql.so 所以我的问题是:为什么PHP的MySQL扩展不能正常工作,如果我的configuration包含在php-cli中,正在工作? 非常感谢!

完整的服务器备份解决scheme(远程Windows共享)

我有一个工作服务器与RAID> lvm> dmcrypt堆栈。 我想要一个解决以下问题的备份解决scheme: 仅更改:仅传输每日更改,而不是每次都传输整个X Terrabytes。 (能力保持不同版本的X天是一个加,但不是必须的)。 能够恢复到不同几何形状的磁盘:如果出现硬件故障,我不能出去购买完全相同types的硬盘(CHS特性),因为它们将被停用。 我可以买相同或更大的尺寸。 我看到的问题是: 分区 :复制前512字节(包含分区表)可能不适用于具有不同几何形状的磁盘,所以我需要一些智能的分区表备份解决scheme 。 Raid :build立RAID的分区是以某种方式标记的(在这个分区的最后一个分区里)。 这个元数据需要在新磁盘上恢复(应该build立一个新的raid)。 所以我需要一个解决scheme,可以重build一个与旧的RAID相同的RAID。 Grub :除了MBR和/ boot分区中的GRUB部分,我怀疑还有其他地方存储的部分(可能是第一个驱动器中的未使用区域)。 所以当恢复时,我需要一些自定义的GRUB安装程序(它将安装相同的版本)。 dm_crypt :在恢复数据之前,应该设置encryption的分区。 当然,在必要时提示键。 目标的限制: Samba :我只有一个samba共享来存放数据,因此可能需要使用一些额外的实用程序(tar)来保存特殊的文件标志和所有权。 encryption :在本地应该使用文件级encryption(类似于encfs ),因为我不希望未encryption的信息离开系统。

Rsyncing VPS的“/”目录到外部驱动器:良好的备份解决scheme?

我有一个VPS与Debian 6(挤压),并希望备份在家里的外部驱动器,以便在发生故障的情况下,我可以恢复所有的软件,设置和数据库的完整操作系统。 我想到的解决scheme是rsync服务器的/目录到外部驱动器,如rsync –one-file-system –archive "[email protected]:/" "/media/backup" 。 –one-file-system选项将排除/proc , /sys , /dev和/run等虚拟目录。 大多数VPS提供者没有select从虚拟CD引导服务器,或者在文件系统没有运行的时候修改文件系统,因此备份恢复到一个新的VPS将不得不涉及Debian修改自己的全新安装。 我认为这可以通过rsync外部驱动器到服务器的/目录,使用rsync –one-file-system –archive –delete "/media/backup" "[email protected]:/"命令rsync –one-file-system –archive –delete "/media/backup" "[email protected]:/" 。 –delete用于删除服务器上不在备份中–one-file-system不删除虚拟目录(在备份时被排除)。 虚拟化平台是OpenVZ,所以内核是共享的, /boot是空的。 描述的解决scheme是否可靠? 我应该排除更多的目录吗? 如果解决scheme不可靠,您还有什么build议?

MySQL:5000核心用户,2GB表重写/读:如何防止崩溃

这是一个有争议的问题,因为很多人可能都想马上推荐一些简单的东西,比如:把桌子分开! 将读/写分解为主/从configuration! 放大服务器RAM! 等等….让我先解释一下这个问题: 我有一个有点强大的服务器:8GHz的,160GB的存储空间,8GB的RAM(16GB的灵活内存),RAID 10,16GB的Flexi-SSD。 运行mySQL,PHP,Apache,Debian。 我目前的数据库包含大约16个表,其中特别包含1.7GB的信息,2300万行(索引)。 我运行的服务需要每天进行,有时每小时扫描一次我通过第三方收到的数据,并且每分钟产生大约100行到最多5000行(很less)的数据。 数据是通过抓取工具从API中获取的,这些抓取工具是自动运行的,计划的,有时是临时的,所以它们对于主机来说是重要的。 当人们使用这个网站的时候,会有刷新的查询可以显示他们最新的分析数据,所以当很多人login时,这个数据非常繁重(我使用慢速查询并试图减less索引我可以在哪里)。 我从数据库中快速生成这些分析数据(最长24小时),可以为每个用户总结多达500万条logging。 我不认为预渲染这些查询是有意义的,因为我必须考虑所有的切片/过滤,以及在预先呈现的HTML文件….不是吗? 或者人们这样做? 现在,有时候,我在手机上收到警告,只有login到服务器才能发现mySQL已closures。 我会做一个mysqlcheck和修复,这需要2个小时或更长的时间,最终退出一个工作的数据库。 我开始一切,一切都很开心。 我从来不知道为什么会发生这种情况 ,大多数情况下,当一个博客写关于该网站的时候就会发生这种情况 ,而人们只是通过注册来攻击网站。 但是没有详细logging坠毁的地方。 除了速率限制注册过程(等待线),有什么我可以做,以确保无论发生什么事情,MYSQL不应该崩溃? 我可以每小时运行一次自动修复并优化实时实例吗? 我认为这阻止了所有访问表,这将是可怕的? 我真的被这个压倒了。 我分裂了读/写,理论上可以将所有的读访问用户拆分成EC2实例上的从属服务器。 但是,然后我有使用尖峰急剧上升的问题,一旦我需要一个新的EC2实例,它需要我传输高达2GB的数据同步从属数据库…这从来没有通过mysql-bin日志如果我决定closures/启动一个EC2实例并停留多天。 我已经能够保持良好的状态,但是即使有了EC2和其他技术,我也不会受到我的理解和技术能力的限制。 我很乐意分享所有必要的信息,以便将来成为有用的线索/文档。 由于不是每个网站都是youtube / youporn / instagram / tumblrtypes的环境,我觉得我的网站types信息太less(高写入/读取,每个用户500到5Mlogging,在3000-10000个用户。 谢谢大家,请提出问题,我会提供更多信息。 我很乐意听到你的最佳做法。

从apt-get选项覆盖dpkg admindir(debian / ubuntu linux)

作为操作系统部署的一部分,我需要维护独立于主机操作系统的debian软件包。 覆盖caching和列表的Apt设置,而不是admindir的dpkg设置非常简单。 例如: apt-get -o Dir::Etc::Sourcelist='/path/to/sources.list' \ -o Dir::Cache::Archives='/path/to/cache/apt/archives' \ -o Dir::State::Lists='/path/to/lib/apt/lists' \ -o DPkg::Options::='–admindir=/path/to/lib/dpkg' update 这会正确地从/path/to/sources.list中读取我的源代码,并在/ path / to / lib / apt / lists / *中构build包列表。 但是,在更新命令结束时,我仍然收到以下错误: E: Could not open lock file /var/lib/dpkg/lock – open (13: Permission denied) 尽pipe最后一个选项试图覆盖“/ var / lib / dpkg”的默认dpkg admindir。 我究竟做错了什么? 根据这样的指南 ,我正在做的DPkg :: Options应该工作。

mysql.proc已经损坏。 我该如何解决?

我有一台运行Debian 5.0和MySQL的服务器。 突然之间,MySQL停止了工作,经过多次尝试修复它,我决定重新安装它。 我安装了MySQL 5.1.63,启动时进入安全模式。 我做了一些打字,当我以root身份执行mysql_upgrade时,它抱怨说: … Running 'mysql_fix_privilege_tables'… ERROR 1548 (HY000) at line 1111: Cannot load from mysql.proc. The table is probably corrupted ERROR 1064 (42000) at line 1112: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near […]

无法在Debian Squeeze上启动apache2

我用apt-get install apache2安装了apache,然后尝试了wget localhost ,得到: –2012-09-21 23:12:29– http://localhost/ Resolving localhost… 127.0.0.1 Connecting to localhost|127.0.0.1|:80… failed: Connection refused 然后我尝试了/etc/init.d/apache2 status ,果然,apache2没有运行,但是如果我执行了/etc/init.d/apache2 start它仍然不会启动服务。 任何帮助表示赞赏!

Postfix&Dovecot – 不能接收邮件 – status = bounced(未知用户:“some.name”)

我有Postfix和Dovecot运行。 Postfix设置为使用Dovecot作为邮件传输。 一切都非常靠书,但每收到一封电子邮件都被反弹回来。 我正在从Gmailtesting邮件服务器。 每个电子邮件都有一些奇怪的查询: SELECT email FROM users WHERE email ='receiver@domain' (This is ok) SELECT email FROM users WHERE email ='receiver@domain' (This is ok) SELECT email FROM users WHERE email ='[email protected]' (Why is postfix checking sender's email against db?) SELECT email FROM users WHERE email ='@gmail.com' (Why is postfix checking senders domain against db?) […]

pure-ftpd debian,不能让www-data用户工作

我试图添加FTP访问Apachenetworking文件,在过去,我已经做了这个与ftpuser和组安排。 这一次,我希望能够以www-data (Debian上默认的Apache用户)的身份直接login,使事情变得更加简洁。 我已经检查并重新检查了所有的常见问题。 MinUID设置为1( www-data有uid 33) www-data将shell设置为/etc/passwd /bin/bash PAMAuthentication已closures UnixAuthentication已打开 我使用/etc/init.d/pure-ftpd restart重启了纯ftpd 我得到的纯粹的ftpd运行是; /usr/sbin/pure-ftpd -l unix -A -Y 1 -u 1 -E -O clf:/var/log/pure-ftpd/transfer.log -8 UTF-8 -B 我的系统日志包含; 10月7日19:46:40 Debian-60-squeeze-64 pure-ftpd:([email protected])[警告]无法login为[www-data]:帐户被禁用 而我的ftp客户端正在给我; 530对不起,但我不能相信你 我错过了什么明显的?