刚刚从https://unix.stackexchange.com/questions/87908/how-do-you-empty-the-buffers-and-cache-on-a-linux-system学习了这三种新技术:
要释放pagecache:
# echo 1 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
要释放dentries和inode:
# echo 2 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
要释放pagecache,dentries和inode:
# echo 3 > /proc/sys/vm/drop_caches
Run Code Online (Sandbox Code Playgroud)
我试图了解究竟是什么页面缓冲,dentries和inode.究竟是什么?
释放它们还会删除有用的memcached和/或redis缓存吗?
-
我为什么问这个问题?我的亚马逊EC2服务器RAM在这些日子里被填满 - 在7天内从6%上升到95%.我不得不运行每两周一次的cronjob来删除这些缓存.然后内存使用率再次降至6%.
我正在使用ipython来了解Boto3并与EC2实例进行交互.这是我用来创建实例的代码:
import boto3
ec2 = boto3.resource('ec2')
client = boto3.client('ec2')
new_instance = ec2.create_instances(
ImageId='ami-d05e75b8',
MinCount=1,
MaxCount=1,
InstanceType='t2.micro',
KeyName=<name_of_my_key>,
SecurityGroups=['<security_group_name>'],
DryRun = False
)
Run Code Online (Sandbox Code Playgroud)
这启动了EC2实例,我可以从AWS控制台获取公共DNS名称,IP和其他信息.但是,当我尝试使用Boto获取公共DNS时,通过这样做:
new_instance[0].public_dns_name
Run Code Online (Sandbox Code Playgroud)
返回空白引号.然而,其他实例细节,例如:
new_instance[0].instance_type
Run Code Online (Sandbox Code Playgroud)
返回正确的信息.
有任何想法吗?谢谢.
编辑:
所以,如果我这样做:
def get_name(inst):
client = boto3.client('ec2')
response = client.describe_instances(InstanceIds = [inst[0].instance_id])
foo = response['Reservations'][0]['Instances'][0]['NetworkInterfaces'][0]['Association']['PublicDnsName']
return foo
foo = get_name(new_instance)
print foo
Run Code Online (Sandbox Code Playgroud)
然后它将返回公共DNS.但对我来说,为什么我需要做所有这些都没有意义.
Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-southeast-1 : Asia Pacific (Singapore)
7) ap-southeast-2 : Asia Pacific (Sydney)
8) ap-northeast-1 : Asia Pacific (Tokyo)
9) ap-northeast-2 : Asia Pacific (Seoul)
10) sa-east-1 : South America (Sao Paulo)
11) cn-north-1 : China (Beijing)
(default is 3):5
Run Code Online (Sandbox Code Playgroud)
当我选择一个数字或只是留空时出现以下错误:
错误:AttributeError ::'NoneType'对象没有属性'get_frozen_credentials'
在运行eb init之后--debug:
回溯(最近调用最后一次):文件"/ usr/local/bin/eb",第11行,在sys.exit(main())文件"/Library/Python/2.7/site-packages/ebcli/core/ebcore …
python command-line-interface amazon-web-services aws-ec2 osx-elcapitan
Kubernetes为每项服务创建一个负载均衡器; 自动在GCE中.如何在AWS上管理类似的东西?
Kubernetes服务基本上使用kubeproxy来处理内部流量.但是那个kubeproxy ip它无法访问外部网络.
有一种方法可以实现这一目标吗?
我必须将我的动态IP(每次更改)连接到AWS EC2计算机.
为此我将我的公共IP映射到域名(xyz.com),现在我正在尝试将其添加到安全组.
但AWS安全组不允许添加DNS名称.这是正确的过程吗,如果不是,请建议我.
我们最近收到了以下关于我们的一个实例的通知:
退休:此实例计划于2015年12月14日UTC-5 PM下午7:00:00退休.
计划退休的实例将在指定日期后关闭.我们建议您启动替换实例并开始迁移到它们.
Availability Zone: us-east-1c
Event type: instance-stop
Event status: Scheduled
Description: The instance is running on degraded hardware
Start time: December 14, 2015 at 7:00:00 PM UTC-5
Run Code Online (Sandbox Code Playgroud)
进一步的细节显示事件类型是实例停止.根据文件:
实例停止:实例将停止并开始将其迁移到新的主机.仅适用于Amazon EBS支持的实例.
实例报废:实例将被终止.
重新启动:实例将重新启动(实例重新启动)或实例的主机将重新启动(系统重新启动).
系统维护:实例可能会暂时受到网络维护或电源维护的影响.
实例停止.这是否意味着我们不需要做任何事情?如果没有,我们需要做些什么来避免服务中断?
所以我试图在aws上的ec2实例上运行ansible,这是第一次在一个新的实例上,但每次我尝试运行一个游戏我都无法解决这个错误信息:
PLAY [localhost]
**************************************************************
TASK: [make one instance]
*****************************************************
failed: [localhost] => {"failed": true} msg: No handler was ready to
authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check
your credentials
FATAL: all hosts have already failed -- aborting
PLAY RECAP
********************************************************************
to retry, use: --limit @/home/ubuntu/ans_test.retry
localhost : ok=0 changed=0 unreachable=0
failed=1
Run Code Online (Sandbox Code Playgroud)
我认为我的IAM用户和组中的权限可能有问题.我已经给了我的IAM用户和组ReadOnlyAccess,AdministratorAccess和PowerUserAccess.我有一个访问ID和秘密访问密钥,我使用命令设置为环境变量:
export AWS_ACCESS_KEY_ID='AK123'
export AWS_SECRET_ACCESS_KEY='abc123'
Run Code Online (Sandbox Code Playgroud)
用'AK123'和'abc123'替换为我的实际id和键值.为了让ansible ec2任务有效,我还需要做些什么?
更新:
我解决了问题,我想我并没有真正了解环境变量是什么.我通过在ec2任务中设置我的aws_access_key和aws_secret_key来修复它,下面是我的工作剧本
- hosts: localhost
connection: local
gather_facts: False
tasks:
#this task creates 5 ec2 instances that are all named demo and …Run Code Online (Sandbox Code Playgroud) 我一直在试图建立一个网站,在AWS上运行后eb init,并eb create与无我遇到了以下错误的任何问题,我选择的设置:
错误:[实例:i-f8e3c005模块:AWSEBAutoScalingGroup ConfigSet:null]实例上的命令失败.返回码:1输出:(TRUNCATED)... conn = _connect(dsn,connection_factory = connection_factory,async = async)django.db.utils.OperationalError:无法连接到服务器:连接被拒绝服务器是否在主机上运行"localhost "(127.0.0.1)并接受端口5432上的TCP/IP连接?
我不确定为什么拒绝连接,但我怀疑它与我的安全设置有关.我知道这有点模糊,但是之前有没有人遇到过这个问题,你是怎么设法最终解决的?
完整输出如下:
INFO: createEnvironment is starting.
INFO: Using elasticbeanstalk-us-east-1-671186898336 as Amazon S3 storage bucket for environment data.
INFO: Created security group named: sg-96efb5f2
INFO: Created load balancer named: awseb-e-v-AWSEBLoa-12ABLMPELT72Q
INFO: Created security group named: awseb-e-v6mwzkkgjw-stack-AWSEBSecurityGroup-JEYPGZP3YJJG
INFO: Created Auto Scaling launch configuration named: awseb-e-v6mwzkkgjw-stack-AWSEBAutoScalingLaunchConfiguration-17DLMC0THMKW
INFO: Created Auto Scaling group named: awseb-e-v6mwzkkgjw-stack-AWSEBAutoScalingGroup-FBCJ1LFH8U38
INFO: Waiting for EC2 instances to launch. This may take a few minutes. …Run Code Online (Sandbox Code Playgroud) 我正在使用具有权限的角色在EC2上运行应用程序:
"sts:GetSessionToken",
"sts:AssumeRole"
Run Code Online (Sandbox Code Playgroud)
当我尝试使用该角色获取临时凭证时,我收到错误:
Cannot call GetSessionToken with session credentials (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied;
Run Code Online (Sandbox Code Playgroud)
我是否缺少一个或多个角色权限才能获得临时会话凭据?
我可以用follwoing命令创建一个instace
aws ec2 run-instances --image-id $ AMI_ID --count 1 --instance-type $ {INSTANCE_TYPE} --key-name KEY_NAME --region us-east-1 --security-groups MYSECURITY_GROUP
但我没有找到任何附加弹性IP地址的选项.是否可以在引导期间附加弹性IP?或者发布自举?
aws-ec2 ×10
amazon-ec2 ×5
python ×2
amazon-iam ×1
ansible ×1
aws-cli ×1
boto3 ×1
caching ×1
dns ×1
ec2-ami ×1
kubernetes ×1
memcached ×1
memory ×1
redis ×1