我看到的奇怪且极其缓慢的 IO 模式是这样的(输出iostat -dxk 1 /dev/xvdb1):
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
xvdb1 0.00 0.00 0.99 0.99 7.92 3.96 12.00 1.96 2206.00 502.00 99.41
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
xvdb1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 100.40
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
xvdb1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 100.40 …Run Code Online (Sandbox Code Playgroud) 我实际上只是在 Dreamhost 上共享主机,我将使用它来测试部署基于 MongoDB 的应用程序。有 32 位和 64 位预构建发行版,但我不知道应该安装哪个,直到我可以确定服务器的架构。
我想这可以通过检测操作系统版本来完成,但我不知道该怎么做。我可以通过 ssh 登录,当然不是以 root 身份登录,因为它是一个共享服务器。我只需要知道什么命令或命令可以告诉我正在运行什么架构。
每次我对文件进行一些更改并保存时,我都希望运行一个命令。我可以设置一个 Ruby 脚本来监控文件并按照我的意愿运行命令,但我突然想到应该有一些简单的 Unix 方法来做到这一点。在那儿?我在 Ubuntu 8.10 上,稍微不那么模糊。
编辑:
incron被推荐了,看起来不错。但是我无法让它工作(编辑:当我在指定目录中保存文件时,命令似乎没有运行,或者我的命令有问题)。我安装了 incron 并使用 incrontab 设置了我用户的 incron 表,并将用户添加到允许列表中。我的具体情况是编辑 TeX 文件。我希望每次编辑和保存 TeX 文件时,命令都将其呈现为 PDF 以运行。所以这是我想出的 incron 表条目:
/home/ehsanul/Documents/latex IN_CLOSE_WRITE echo $@/$# | grep \\.tex$ | xargs xelatex
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
题
我怎样才能使这篇文章中描述的查询更快,特别是通过使用可用的 RAM 来创建 PostgreSQL?- 请注意,我已尝试适当地配置 Effective_cache_size 和 shared_buffers。见下文。
背景
我必须定期将大约 2.6 亿行表 (coreg_master) 加入进来的新数据。我已经对表进行了分区,以允许每个分区都适合 RAM。当然,我也设置了适当的索引。但是,当将分区表与其他(小得多)表分开连接时,它会在磁盘上进行完全随机的 IO。这是由于对大表的嵌套循环索引扫描造成的,这真的很慢,因为我们没有很好的磁盘设置。
我希望它使用所有可用的 RAM 来缓存大型分区表,我认为这应该由 Linux 内核/文件系统本身完成。但是它仍然不会将表加载到 RAM 中,尽管它适合。我猜这是因为访问模式不是顺序的,因此不会触发缓存?我不知道。查询计划和配置参数如下。
表结构
这是coreg_master的分区之一,我的大表。分区表被命名为 coreg_a、coreg_b 等。
\d coreg_a
Table "public.coreg_a"
Column | Type | Modifiers
-------------+-------------------+-----------------------------------------------------------
id | integer | not null default nextval('coreg_master_id_seq'::regclass)
first_name | character varying |
last_name | character varying |
phone | character varying |
city | character varying |
zip | integer |
address | character varying |
dob | date | …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 8.10
该脚本在从命令行调用时运行sudo /etc/init.d/xbindkeys start。这是它的外观:
#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
case "$1" in
start)
xbindkeys
;;
stop)
ps aux | grep xbindkeys | head -n1 | awk '{print $2}' | xargs kill
;;
restart)
$0 stop
$0 start
;;
esac
Run Code Online (Sandbox Code Playgroud)
我之前运行sudo update-rc.d xbindkeys defaults过创建符号链接。为了确保它被正确链接,我尝试了chkconfig | grep xbindkeys,它返回:
xbindkeys 2345
Run Code Online (Sandbox Code Playgroud)
但是,重新启动后,我没有看到ps aux | grep xbindkeys.
想法?
我似乎在依赖项方面遇到了一些麻烦,但我自己真的不知道如何解决这个问题。这是输出:
~:) sudo apt-get install build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
Since you only requested a single operation it is extremely likely that
the package is simply not installable and a bug report against
that …Run Code Online (Sandbox Code Playgroud) linux ×3
postgresql ×2
ubuntu ×2
architecture ×1
daemon ×1
dependencies ×1
hard-drive ×1
init.d ×1
inotify ×1
installation ×1
iostat ×1
performance ×1