给Linux新加或者修改Swap交换内存(Amazon EC2 )

在亚马逊的主机搭建我的个人博客一个多月了,最近安装了一些插件,以来丰富我的博客的功能,另外好几个插件是统计和管理型的,这样让我对自己对小站有更详细的了解。 然而也就装了三四个插件后,网站访问变得出奇慢,基本上可以说是无响应。这个时候申请ssh登陆服务器也会超时,如果之前登陆过的话,每输入任何一个字母都等很久,多数命令并不能执行返回cannot allocate memory的错误。起初我以为是cpu或者网络传输到达免费额度了,所以数据传不过来或者cpu计算能力不够。一直觉得1G内存用来跑一个网站绰绰有余了,就没考虑内存出问题,可是其他问题查了一个遍都正常,那只能是内存用完了。实际测试确实是这个问题。 这是我都个人小站待机时候都内存状态,没有任务也没有客人访问都时候,物理内存就用掉900多M,可见不添加虚拟内存毫无疑问会卡死。 最好的解决方法就是增加内存,可是这同时增加支出。。。我作为学生本来就用的amazon免费资源,所以这条路走不通了。 第二个很好的方法就是增加交换内存。把硬盘的一部分拿出来,当内存不够用的话可以暂时存在这里做个缓冲。亚马逊免费套餐也良心的很,硬盘最大可以达到30G而且是SSD,之前传输文件速率能达到71M/S,已经相当棒了。所以我着手开始给我的虚拟机增加虚拟内存。一般来说服务器提供商默认是不设置虚拟内存的,所以我们添加后应该能大幅度提高使用性能。 有两种方法: 使用一个文件作为交换内存 新增一个分区作为交换分区 第一种方法很方便也是我喜欢用的,并且也有利于之后调整虚拟内存的大小,只需要更改那个文件大小就可以了。看下边的步骤。 下边步骤都需要root权限,su切换到root或者用sudo 首先如果你设置过或者默认有虚拟内存,需要先停用掉: swapoff -a 然后新建一个文件用来当作交换文件用: dd if=/dev/zero of=/swapfile bs=1M count=1024 这个命令生成一个在根分区的空文件,大小为1G,可以根据个人喜好更改地点和大小。总大小为bs*count:块大小与块数量都乘积。 mkswap /swapfile swapon /swapfile 运行这两个命令就开启了虚拟内存。 下一步设置开机自动加载,不然刚才的虚拟内存只对本次有效: 在/etc/fstab 写入下边的配置: /swapfile none swap defaults 0 0 或者编辑/etc/rc.local文件,加入以下内容(具体根据自己的文件路径): swapon /swapfile 这样用文件作为交换分区就设置好了,如果以后需要更改大小就很简单,先swapoff -a停用掉交换分区,把之前的swapfile删掉再重新生成一个满意大小的文件就可以了,下边开启以及设置开机自启动命令相同。 可以用free -m 查看一下,是不是多出了swap内存。 第二种方法设置一个swap磁盘分区: 首先是停掉现有的swap分区:swapoff -a 用fdisk命令(例: fdisk /dev/xvda1)对磁盘进行分区,添加swap分区,新建分区,在fdisk中用“t”命令将新添的分区id改为82(Linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)。 mkswap /dev/xvda2 格式化swap分区,这里的xvda2要看您加完后p命令显示的实际分区设备名 swapon […]

给Linux新加或者修改Swap交换内存(Amazon EC2 ) Read More »

有人严苛,有人放纵,有人循循善诱,有人喋喋不休。 悦己而后悦世人,知世人而后知己。

Read More »

我的小本儿罢工了

我的小本儿没记错的话,是2014年7月北京西单苹果店买的,到现在17年7月正好3年,一直很好用之前没出现过毛病,系统都升级很多次,还用的是beta系统都没重装过系统。今天的不能启动有一些是自己的原因。 我记得上次用电脑忘记带充电器,所以看博客看到最后1%才打算让小本儿休息。并且我做了一件愚蠢的事情,我想让电脑完全休息,就点了关机。而苹果电脑一般是不需要关机的,都是为了方便而设计,开盖即用,合盖就走。 这次关机可能就是罪魁祸首。由于电量太低,可能还没关机成功就自动进入了睡眠。关机的进程,可能被卡了一半。在充满电后重新进入关机流程,又由于一个软件的禁止关机而出现了更多麻烦事情。这些问题结合起来,就造就了现在的无限菊花和进度白条。 三年了,早就有想法重制一下系统,那就这次吧。

我的小本儿罢工了 Read More »

我不知道该写在哪儿

同时玩微软和亚马逊的服务,对比与体验各家服务的不同。所以导致现在我在好几个地方都用来记录生活,想记录点东西都不知道该写在哪儿, 得知微软学生帐户的免费dreamspark有一年有效期,到期后需要重新验证,而验证码只有在读的时候才能获取。看来在毕业后,我的微软平台的博客还是需要费心处理一下了。 突然有个感觉当学生真好,还有免费资源用,毕业后这些就享受不了了,想再让自己的网站稳定运行,就得花票票了。这可能就是鼠目寸光的表现吧。现在没有收入都是花家里的钱,遇到一点点施舍(各大公司给学生的福利就是一种给穷人的可怜,同时起一个好听的名字叫做对学生的辅助)就欣喜的不行不行的了。穷学生就是靠时间的投入来减少金钱的支出。设想工作后有了稳定的收入,买一个标准的服务也花不了多少钱,还能体验所有功能而不是现在各种限制。努力提高自己的能力才是最重要的,不然太容易让所谓的“关心帮助”而感动,从而感觉Ta对我真是太好了处处为我们考虑,唉怎么写着写着有点像经常听到的什么政策出台后农民同胞欢天喜地其乐融融的和谐社会景象呢。个人写博客记录生活沉淀心情,如有雷同,从属巧合。 写着写着就跑题,本来是down time,主要目的是给最近几天低落的情绪做一个记录,总结反思也同时是对以后的教育,可是脑子里又充满了建站空间资源等各种东西,我快要把我现在是downtime的状态忘记了,这可能就算写一写博客的作用吧。看来我真的是喜欢这些东西,虽然也挺麻烦的也很耗时,同时我也不是说这方面很天才,可是我就算在做这个的时候很开心。 还是多多少少记录一下我的状态,不然真的是跑题跑太偏了。 过去的一周助教太忙,没空搭理我,索性我就复习考试没有来实验室。每天生活很规律,白天图书馆看看书,晚上要不就健身,要不就看一些喜欢觉得有意思的东西。可是每天的状态超级不好,计划是白天认真学,晚上很轻松的消遣。可是学习时候看不进去书,健身的时候也三心二意。脑子里迸出各种事情,但是又只有1秒钟的记忆,感觉在思考问题,一转身就忘记刚才是想的啥。感觉一整天都是睡不醒,可是爬在桌子上补个觉却感觉更难受了。现在感觉应该与前几天睡的晚有关系,睡的晚影响睡眠质量,真是又一次印证了这是得不偿失的行为,不知道还要印证几次。 这种状态真让人难受。别人很难看出来,自己却感觉像这个世界都变成了黑白。 原因挺多的,我老是愿意把黑锅推到要考试了这件事上,其实心里很清楚,即使没有考试,即使每天做自己喜欢做的事情,也是不可避免再次进入这种状态。真正需要去做的,是想办法解决问题而不是找推卸责任了。

我不知道该写在哪儿 Read More »

我的小绿锁

弄了一晚上,我得小绿锁终于在一天结束之前来临了。 我遇到的事情中,实际去实践用掉的时间,远远要大于我之前预估的时间。超过九成的事情是这样。是程序员的通病吗?我觉得那也仅仅是个借口,先得在自己身上找找原因。那么问题来了,为何我的效率总是这么慢呢? 跑题了,我得小绿锁来了好开心,中间一波三折差点把我的网站搞挂掉,还好又救了回来并且对于阿帕奇和php的关系更加清晰了一些。好开心好开心 感觉不管在这个方面我有没有很大的成就,至少我做这些事情的时候心情特别的棒。我是一个热情洋溢的冒牌程序员啦~~~~

我的小绿锁 Read More »

写给被亚马逊扣的费

一直博客没有一个稳定的平台,各个地方打一枪换一炮,有时候免费空间用完了连带着我的个人网站也被收回了,而每次各个地方的资源也没有做到同步,想想挺可惜的。 文章题目说写给被亚马逊扣的费,算是给自己的嘲讽吧。在玩AWS之前了解了很多信息就说为了避免这种事情发生,可是开始掉坑里了。这次产生费用的原因我已经找到,由于我同时在两个地方运行了两个实例,所以总时间超了。感觉也有亚马逊的原因,他们有个地方显示总实例数量,而这个我后来才知道,是不同数据中心分开的。所以我在法兰克福数据中心看到只有一个实例,而往里了在美国也曾经打开过一个而没有删掉。 听说亚马逊客服是世界上最可爱的人,我一会儿去体验一下。

写给被亚马逊扣的费 Read More »

我在微软Azure上边的博客

经过一天的尝试,我在微软Azure上边的博客终于搭建好了。作为记录搭建过程,或者说自己的此刻的想法心得,在此稍微记录一下。 无意间看到微软给予学生的优惠大礼包中,Azure可以免费使用Web应用。虽然没怎么搞清楚啥叫web应用,但是看着像可以搭建自己的一个网站的样子。在免费资源中,有1GB的硬盘储存空间,还有1GM的RAM,还有CPU使用率什么的,虽然不多,但是对于简单的学习搭建一个wordpress已经绰绰有余了。由于并不是给了一个虚拟机自己可以拥有root权限做任何想做的事情,所谓的web应用是他们把一些功能进行了深层次的包装。也就是说,我得到了一个可以运行php的文件夹,我可以用ftp上传文件到这里,然后通过给我的这个域名,我可以访问到我都php网页。php的配置也不需要我担心,所有都弄好了,只需要上传php文件。作为测试php,用phpinfo最方便,当然我的第一个页面就成了显示php安装信息的页面了。 安装wordpress有两大部,第一要有一个php运行环境,第二要有一个mysql数据库。在Azure搭建这个博客,第一个条件挺容易满足,php直接就可以使用,第二个mysql费了一些周折。官方给了一个叫做mysql in app 的插件,理解这个名字就很费劲。什么叫app,为什么又是mysqll IN app,慢慢才搞懂,就是说Azure提供给我一个php虚拟机,同时提供运行mysql,可是这个mysql有特定的设置,只能本地运行,(后来我用sqlyog尝试链接失败。) 官方提供了很多上传代码的方式,最容易入手还是ftp。首先学到一个新词,上传文件叫做部署(Deployment),上传需要登陆ftp用到的账号叫做部署凭证(Deployment Credentical)。在这里设置一个用户名和密码,这里还有一个坑。就是当你设置完之后一心欢喜用工具开始连接ftp主机,可是毫无疑问会失败。这是因为真正的登陆账号在overview上边找到,是主机名和刚才设置的用户名的结合体,比如我的是XXX\XXX,地址也在那里有显示,浪费我好多时间在这儿,坑死人了。 官方有个phpmyadmin叫做插件,如果不是稍微了解一些技术细节的话,还真被他们这些专业属于吓唬的一愣一愣的。我自己通过ftp上传了一份phpmyadmin,可是死活找不到账户名和密码,并且官方的插件也是自动登陆,显然,官方不愿意让人知道mysql的账户名和密码。没有了账户密码我就不能安装wordpress,找账号密码这个问题用了我一天时间。。。首先思考,官方的phpmyadmin能够登陆,总归有一种验证方式,通过ftp每个文件夹找啊找,终于找到了一些信息,config.ini.php里边保存了默认登陆信息,同时找到了主机(所谓的APP)提供关键登陆信息:MYSQLCONNSTR_localdb 文件,里边其实告诉了详细的信息,包括数据库地址(在localhost的基础上换了端口,又是一大坑点),还有一个账号和密码。我直接用这个账号密码登陆我下载phpmyadmin不行,现在知道了原因,是端口号不是默认的所以不对不能登陆。后来,把官方默认的配置文件都抄到我下载的phpmyadmin里边,神奇的也不用密码就快可以进入了,所以我知道这个配置文件有文章。关键是php语法我看不懂,看来看去看不出什么文章来。。然后我就尝试在phpmyadmin里边找root的密码,失败告终。又尝试创建新的账户,却在添加权限的时候出错,我都理解是Zaure给的这个账户权限不够。网上说的可以通过页面修改root密码,可是关键的一点没有edit privilege 这个选项,看到了微软满满的不愿意你修改账户的想法。 后来想各种方法改管理员root的密码,想把这个账户拿回来,那样就完全控制了我都数据库。由于没有虚拟机的足够权限,我没办法关闭mysql再在配置模式下打开,就不能通过无密码方式进入数据库修改root密码。后来就思考,这些信息都因该是存在表中的,我能不能直接操作数据表把密码删掉呢,后来,真在mysql里边找到了usr这个表单,在这里,可以授权失败添加的新账户强行加上各种权限,这样,之前创建的空白数据表也有了操作者,说明我的权限添加成功。我有满心欢喜的用这个账号去登陆wordpress,还是失败告终。搞不懂说明原因。后来我随手点来默认的azure账户,发现所有权限都有唯独grant权限关闭,当时我也不知道有啥用,只是想反正就是尝试少一个不如多一个。后来在主页user account神奇的一幕出现。多了一栏有了修改权限这个选项。后来想明白,开始能创建用户但是给不了权限,就是因为我操作者账户没有grant权限的问题,在我手动点开后我就可以给其他用户分配权限(也就是grant命令),在写这篇文章的时候,我又想起那是不是root的密码也可以拿回来了,一试,果然~~~~~ 在wordpress上,很早就知道了azure用户名和密码,尝试很久不能登录现在知道了原因,是localhost后需要加自定义端口,而我从来没有往这方面想,后来成功的一次是随手试了一下,果然还需要多尝试。到目前位置,我的wordpress已经可以用azure连上数据库,并且现在我已经在这里写文章了。但是不知道为何我新生成的账户不能登陆。就在刚刚,我尝试了用root和shuspieler登陆phpmyadmin,竟然成功了,理论上讲,应该也能登陆wordpress,毕竟这两个都是我自己下载的不是官方的资源。我的wordpress写了这么多,也不忍心再尝试了。就留个悬念吧,我觉得可行。(之前自定义的账户不能登陆phpmyadmin可能是由于没有加权限,唉关于数据库怎么都是权限。。。)

我在微软Azure上边的博客 Read More »