Increase RAM do I need to increase shared pools
If I adjust my RAM by adding 12 GB with gives it 32 GB total, what do my ipc pools have to be set at? especially 10 and 40 on AIX?
What other params do I need? We have a heavy interface with batch jobs from our manafacturing floor systems.
Thanks
Mikie
Hi,
The Virtual memory, it is physical memory ( RAM) and shared memory combined. Which is automatically allocated by the SAP System. So I suspect that we need not tune the shared memory parameters on addition of addtional physical memory.
With regards
Sudha
Similar Messages
-
Increased Shared Pool size longer hot backup time?
Hello,
I have hot backup that usually took 2 hours to complete. Then we had to increase Shared pool size from 280Mb to 380Mb due to some performance issue.
One week after increase of size the hot backup is taking 4 hours to complete. Since there was no other changes to the system I am suspecting size increase
of Shared Pool from 280Mb to 380Mb might be is reason for such drastic increase of backup time.
I would like to get your comments on my suspicion to the problem.
thank youPaul.S wrote:
One week after increase of size the hot backup is taking 4 hours to complete. Since there was no other changes to the system I am suspecting size increase of Shared Pool from 280Mb to 380Mb might be is reason for such drastic increase of backup time.Hmm... at first glance it does not seem that this is the problem.. but perhaps it contributes to it.
When a SQL hits the SQL engine, the 1st thing the SQL engine does is determine if there is an existing parsed and ready-to-use copy of that SQL. If there is, that existing SQL is re-used - thus the name SQL Shared Pool. The resulting soft parse of the SQL is a lot faster (or should be) than a hard parse . A hard parse is where there is no re-usable copy, and the SQL needs to be parsed, validated and execution plan determined, etc.
Kind of like re-using an existing compiled program (with different input data) versus compiling that program before using it. (and that is what source SQL is - a program that needs to be compiled).
Okay, now what happens if there 100's of 1000's of SQLs in your shared pool? The scan that the SQL engine does to determine if there is a re-usable cursor, becomes pretty slow. A soft parse quickly becomes very expensive.
The problem is typically clients that create SQLs that are not sharable (where the input data is hardcoded into the program, instead of input variables to the program). In other words, SQLs that do not use bind variables.
Each and every hardcoded SQL that hits the SQL engine, is now a brand new SQL. And requires storage in the SQL Shared Pool. Shared Pool footprint grows and you start getting errors like insufficient shared pool memory.. and increase the shared pool which means even more space to store even more unique non-sharable SQLs and making soft and hard parses even more expensive.
Like moving the wall a few metres further and then running even faster into it. !http://www.pprune.org/forums/images/smilies2/eusa_wall.gif!
Now if the backup fires off a load of SQLs against the SQL engine, the fast soft/hard parses can now be a lot slower than previously, thanks to a larger shared pool that now caters for more junk than before.
Unsure if this is the problem that you are experiencing.. but assuming that your suspicion is correct, it offers an explanation as to why there can be a degradation in performance. -
Oracle RAC 10.2.0.3 increasing shared pool KQR L PO
Hi,
I've got ORA-04031 on my 4 node 10.2.0.3 Linux RAC.
The top 3 shared pool occupants are:
SQL> r
1 select * from (
2 select * from v$sgastat where pool = 'shared pool' order by 3 desc)
3 where
4* rownum <= 3
POOL NAME BYTES
shared pool KQR L PO 714319616
shared pool sql area 326563888
shared pool free memory 220592728Any idea what is KQR L PO responsible for ?
Regards.
GregHi,
CauseThe shared pool is stressed and memory need to be freed for the new cursors. As a consequence, the dictionary cache is reduced in size by the LCK process causing a temporal hang of the instance since the LCK can't do other activity during that time. Since the dictionary cache is a memory area protected clusterwide in RAC, the LCK is responsible to free it in collaboration with the dictionary cache users (the sessions using cursors referenced in the dictionary cache). This process can be time consuming when the dictionary cache is big.
Solutiona. reduce the stress on the shared pool
=> by increasing it above the automatically reached value with dynamic sga, e.g.
when sga_target is set to 16G and the shared_pool_size was 6G during the hang time, set it to e.g. 8G.
=> by reducing the number of big cursors entering the shared pool, e.g. cursors using more than 1M sharable_mem e.g. via binding
select sql_text from v$sqlarea where sharable_mem > 1M;
b. reduce the dictionary cache usage in order to reduce the size of the dictionary cache, e.g.
=> when dc_histogram_defs is too high, it can point towards histograms calculations on all columns
of the tables. histograms should only be calculated on indexed columns
=> when dc_segments is high compared to dc_object_ids, it can point towards excessive partitioning usage. Reducing the partitions/subpartition usage will help reduce the dictionary cache usage to manage it.
c. set enableshared_pool_durations = false to avoid that one duration (a memory area in the shared pool used for a specific usage) need to give all space required for that usage, i.e. in case the duration containing the dictionary cache need to free memory, then that duration is extra stressed since no other type of memory from other durations can be used. Setting it to false make that any type of memory can be used to free space (i.e. any type of memory in the subpool). As a consequence, the number of subpools will be reduced by the factor of the number of durations (4 in 10gR2). Hence tuning the kghdsidxcount is advisable, e.g. increasing it to have manageable subpool sizes (see note:396940.1).
d. check patch:8666117 has been applied. This patch speedup the processing to free memory
Best regards,
Rafi.
http://rafioracledba.blogspot.com/ -
Increase Shared Pool for erorr # ORA-04031
hi,
what do i need to look at before i increase the shared pool of our database?
there is just the one database instance on the machine.
i am concerned about the repurcussions on the server.
i hope the information below is of help.
db version: 10.2.0.1.0
os: Red Hat Linux 3
SQL> select name, value from v$parameter where name like '%pool%';
name value
shared_pool_size 150994944
large_pool_size 33554432
java_pool_size 50331648
streams_pool_size 0
shared_pool_reserved_size 10066329
buffer_pool_keep
buffer_pool_recycle
global_context_pool_size
olap_page_pool_size 0
thanks,
santosh sewlalHi Santosh,
This is what i faced last two days back! Now i am monitoring the Issue! If you got any solutions please let me know how to avoid this!
ORA-04031 error can be due to either an inadequeate sizing of the SHARED POOL size or due to heavy
fragmentation leading the database to not finding large enough chuncks of memory.
You can monitor this with the two events...
alter system set events '4031 trace name errorstack level 3';
alter system set events '4031 trace name heapdump level 3';
Fragmentataion is one of the causes of ora 4031
Please refer these.
1.Article-ID: Note 146599.1
Title: Diagnosing and Resolving Error ORA-04031
2.Article-ID: Note 62143.1
Title: Understanding and Tuning the Shared Pool
3.Article-ID: Note 61623.1
This is paticular for Oracle 9i Rel 2, Hope the same for Oracle 10 G
Regards
Ravi -
Hi All,
DB:oracle9iR2
os:solaris
how to get the shared_pool usage,free total size and hit ratio in oracle 9i R2?,can any one help to me....
POOL BYTES MB
shared pool used :
shared pool free :
shared pool (Total):
=================
Shared_pool hit ratio:
thanks.Hi All,
thank you for all the responses..
Db:oracle 9iR2
os :solaris
Actually i am facing below problem..
prob: ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 4224 bytes of shared memory ("shared pool","select obj#,type#,ctime,mtim...","sga heap(1,0)","library ca
che")
Wed Feb 8 19:33:43 2012
Errors in file /ora/admin/cddp/bdump/cddp_cjq0_2601.trc:
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 4224 bytes of shared memory ("shared pool","select obj#,type#,ctime,mtim...","sga heap(1,0)","library ca
che")
Wed Feb 8 19:33:43 2012
Errors in file /ora/admin/cddp/bdump/cddp_cjq0_2601.trc:
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 4224 bytes of shared memory ("shared pool","select obj#,type#,ctime,mtim...","sga heap(1,0)","library ca
che")
Wed Feb 8 19:33:48 2012
Errors in file /ora/admin/cddp/bdump/cddp_cjq0_2601.trc:
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 4224 bytes of shared memory ("shared pool","select obj#,type#,ctime,mtim...","sga heap(1,0)","library ca
che")
========================================
i was running with 200MB size of share pool....couple of days back un expectdly i got above error....for temparory solution i did shared pool flush...
again nexday same error got repeated....for that i increased shared pool size to 420 MB....
while monitoring db it is using shared pool memory up to 400MB with avg shared pool hit ratio of 94.5 %..(database started recently)...
Earlier shared_pool size:200MB
Now:420 MB
Avg usage:up to 400MB
my question is :
1)if we have many different sql statements in shared pool ..won't
oracle flush share pool (ie aged out based on LRU or some alogorithm) if any program need memory in shared pool?
2) Any data Fragmentation will cause@above error?
3)can any one please explain..... how to check whats going on in Shared_pool(internally)...why it is using 400MB while compare to erlier avg usage 170MB .....any idea...(how to find root cause)..?
4)will plan table cause any issue ?
can any one explain to me...
thanks..
Edited by: kk001 on Feb 11, 2012 4:54 PM
Edited by: kk001 on Feb 11, 2012 4:56 PM -
Hello Team:
I ran a metalink script to report the shared pool utilization recently. I took this output when the database was on peak load.
SQL> /
Obj mem: 66435759 bytes (63.36MB)
Shared sql: 324219036 bytes (309.2MB)
Cursors: 341207073 bytes (325.4MB)
Free memory: 67228508 bytes (64.11MB)
Shared pool utilization (total): 468785754 bytes (447.07MB)
Shared pool allocation (actual): 754974720bytes (720MB)
Percentage Utilized: 91%
does this mean I have to add more space to shared pool. If so what is the threshold value?
Regards,
BalaBhawani nandan Prasad - Principal DBA -- See a to z diagnostics about Shared pool
1. Memory 2
a. Shared Pool 2
1. Introduction 2
2. Architecture 2
3. Scripts for different DBA tasks: 5
a.Measure object usage inside the shared pool and Tune shared pool 7
b.Check reload problem in library cache 12
c.Find the large queries in the shared pool library cache (using > 4mb each) 13
d.Find objects that can be considered pining into the shared pool 13
e.LRU work and objects were loaded and flushed 13
f.How much are waiting for Library Cache Latch 14
g.Queries identical but aren’t shared. 14
h.Get Biggest chunk of free memory. 14
i.Check the shared pool reserved size status 16
j.When having multiple subheaps: 16
k.Check shared pool at first glance quick diagnostics 17
l.Memory Usage - object list level view 17
m.Loads Number of times object has been loaded 17
n.Check number of times and object has been executed 18
o.Check shared pool in more details 18
p.Library Cache Statistics 18
q.Reserve Pool Settings 19
r.Pinned Objects 19
s.Finding literal SQL 19
t.Finding the Library Cache hit ratio 19
u. Row Cache Misses – Dictionary cache stats 19
v. Checking hash chain lengths 20
w. Checking for high version counts 20
x. Finding statement/s which use lots of shared pool memory 20
y. Allocations causing shared pool memory to be 'aged' out 21
z. Issues in various Oracle Releases 21
4. Terminology 22
5. Oracle 11g Caching and Pooling – SQL Result Cache 27
6. References 37
2. SQL 38
3. Statistics 38
4. Wait events 38
5. Schema 39
6. General 39
a. Scripts 39
1. accept.sql 39
1. Memory
a. Shared Pool
1. Introduction
Shared pool is used to cache different types of data such as textual and executable forms of PL/SQL blocks and SQL statements, dictionary cache data, and other data in SGA. Additional shared memory needed in the SHARED POOL if using ASM storage. Gathering schema/database stats (table/index stats) makes database query performance better and it reduce utilization of shared pool. Hence, practice to schedule job to gather stats regularly which suites your database performance. If you use shared pool effectively you can reduce resource consumption in at least four ways
1. Parse overhead is avoided if the SQL statement is already in the shared pool. This saves CPU resources on the host and elapsed time for the end user.
2. Latching resource usage is significantly reduced, which results in greater scalability.
3. Shared pool memory requirements are reduced, because all applications use the same pool of SQL statements and dictionary resources.
4. I/O resources are saved, because dictionary elements that are in the shared pool do not require disk access.
This sharable area of memory is managed as a sophisticated cache and heap manager rolled into one. It has 3 fundamental problems to overcome:
1. The unit of memory allocation is not a constant - memory allocations from the pool can be anything from a few bytes to many kilobytes
2. Not all memory can be 'freed' when a user finishes with it (as is the case in a traditional heap manager) as the aim of the shared pool is to maximize share of information. The information in the memory may be useful to another session - Oracle cannot know in advance if the items will be of any use to anyone else or not.
3. There is no disk area to page out to so this is not like a traditional cache where there is a file backing store. Only "rewriteable" information can be discarded from the cache and it has to be re-created when it is next needed.
Oracle 10g architecture of Shared pool:
Library Cache Shared SQL Area (Hash Value, SQL source, Execution plan)
Data Dictionary Cache
Enqueues Fixed Area Other
Latches
Oracle 11g architecture of Shared pool:
Library Cache Shared SQL Area (Hash Value, SQL source, Execution plan)
Data Dictionary Cache
Result Cache
Enqueues Fixed Area Other
Latches
1. Library Cache
Shared Sql Area: contains Parsed SQL and execution Plans for statements already run against the database. This area allows SQL execution plans to be reused by many users.
Private SQL Area: Private SQL areas are non-shared memory areas assigned to unique user sessions.
Pl/sql Area: contains the recently executed Procedures, Functions and Packages.
Control Structures: Common control structure information example Memory for Latches and locks, sequence cache.
2. Dictionary cache known as the row cache.
Dictionary cache stores all the metadata info of tables and views in the database, Names and data types of the columns in the database, Object and system privileges of all the Users. Oracle maintains the stats of all the objects in the shared pool, if any of the memory objects are not used from the last 3 seconds, these memory objects will be aged out and will be removed from the cache. All the Shared Pool Structures are maintained by a LRU (least recently Used) algorithm, by which Oracle removes the objects from the shared Pool, until there is enough free space in the shared Pool to keep new Object.
3. Scripts for different DBA tasks:
Dictionary Views for shared POOL:
NON-RAC
V$DB_CACHE_ADVICE
V$DB_OBJECT_CACHE
V$DLM_LATCH
V$DLM_LOCKS
V$LATCH
V$LATCHHOLDER
V$LATCHNAME
V$LATCH_CHILDREN
V$LATCH_MISSES
V$LATCH_PARENT
V$LIBRARYCACHE
V$LOCK
V$LOCKED_OBJECT
V$LOCKS_WITH_COLLISIONS
V$LOCK_ACTIVITY
V$LOCK_ELEMENT
V$OPEN_CURSOR
V$PROCESS
V$PX_PROCESS
V$PX_PROCESS_SYSSTAT
V$PX_SESSION
V$PX_SESSTAT
V$ROWCACHE
V$ROWCACHE_PARENT
V$ROWCACHE_SUBORDINATE
V$SESSION
V$SESSION_CONNECT_INFO
V$SESSION_CURSOR_CACHE
V$SESSION_EVENT
V$SESSION_LONGOPS
V$SESSION_OBJECT_CACHE
V$SESSION_WAIT
V$SESSTAT
V$SESS_IO
V$SGA
V$SGASTAT
V$SGAINFO
V$SGA_DYAMIC_COMPONENTS
V$SGA_DYNAMIC_FREE_MEMORY
V$SGA_RESIZE_OPS
V$SGA_CURRENT_RESIZE_OPS
v$shared_pool_advice
V_$SHARED_POOL_ADVICE
V$SHARED_POOL_RESERVED
V$SHARED_SERVER
V$SORT_SEGMENT
V$SORT_USAGE
V$SQL
V$SQLAREA
V$SQLTEXT
V$SQLTEXT_WITH_NEWLINES
V$SQL_BIND_DATA
V$SQL_BIND_METADATA
V$SQL_CURSOR
V$SQL_SHARED_CURSOR
V$SQL_SHARED_MEMORY
V$STATNAME
V$SUBCACHE
V$SYSSTAT
V$SYSTEM_CURSOR_CACHE
V$SYSTEM_EVENT
V$SYSTEM_PARAMETER
X$KSMSP
RAC
GV$LATCH
GV$LATCHHOLDER
GV$LATCHNAME
GV$LATCH_CHILDREN
GV$LATCH_MISSES
GV$LATCH_PARENT
GV$LIBRARYCACHE
GV$LOCK
GV$LOCKED_OBJECT
GV$LOCKS_WITH_COLLISIONS
GV$LOCK_ACTIVITY
GV$LOCK_ELEMENT
GV$PROCESS
GV$PX_PROCESS
GV$PX_PROCESS_SYSSTAT
GV$PX_SESSION
GV$PX_SESSTAT
GV$ROWCACHE
GV$ROWCACHE_PARENT
GV$ROWCACHE_SUBORDINATE
GV$SESSION
GV$SESSION_CONNECT_INFO
GV$SESSION_CURSOR_CACHE
GV$SESSION_EVENT
GV$SESSION_LONGOPS
GV$SESSION_OBJECT_CACHE
GV$SESSION_WAIT
GV$SESSTAT
GV$SESS_IO
GV$SGA
GV$SGASTAT
gv$shared_pool_advice
GV$SHARED_POOL_RESERVED
GV$SHARED_SERVER
GV$SORT_SEGMENT
GV$SORT_USAGE
GV$SQL
GV$SQLAREA
GV$SQLTEXT
GV$SQLTEXT_WITH_NEWLINES
GV$SQL_BIND_DATA
GV$SQL_BIND_METADATA
GV$SQL_CURSOR
GV$SQL_SHARED_CURSOR
GV$SQL_SHARED_MEMORY
GV$STATNAME
GV$SUBCACHE
GV$SYSSTAT
GV$SYSTEM_CURSOR_CACHE
GV$SYSTEM_EVENT
GV$SYSTEM_PARAMETER
GV$WAITSTAT
GV$_LOCK
a.Measure object usage inside the shared pool and Tune shared pool
set pagesize 132
column owner format a16
column name format a36
column sharable_mem format 999,999,999
column executions format 999,999,999
prompt
prompt Memory Usage of Shared Pool Order - Biggest First
prompt
column name format 45
select owner, name||' - '||type name, sharable_mem from v$db_object_cache
where sharable_mem > 10000
and type in ('PACKAGE', 'PACKAGE BODY', 'FUNCTION', 'PROCEDURE')
order by sharable_mem desc
prompt
prompt Loads into Shared Pool - Most Loads First
prompt
select owner, name||' - '||type name, loads , sharable_mem from v$db_object_cache
where loads > 3
and type in ('PACKAGE', 'PACKAGE BODY', 'FUNCTION', 'PROCEDURE')
order by loads desc
prompt
prompt Executions of Objects in the Shared Pool - Most Executions First
prompt
select owner, name||' - '||type name, executions from v$db_object_cache
where executions > 100
and type in ('PACKAGE', 'PACKAGE BODY', 'FUNCTION', 'PROCEDURE')
order by executions desc
select 'If the values for the EXEC and LOADS close increase SHARED_POOL_SIZE!' from dual ;
set feedback off
set linesize 80
set pagesize 52
clear columns
clear breaks
col executions HEADING EXEC
col sharable_mem heading SHAMEM
col owner format a8
col name format a30
col type format a12
set numwidth 8
ttitle center 'Data Base Objects Owned by All Users Statistics' skip 2
select name, type, sharable_mem, loads, executions, pins
from sys.v_$db_object_cache ;
b.Check reload problem in library cache
select namespace, pins, reloads from v$librarycache;
show parameters shared_pool
select bytes/1024/1024 from v$sgastat where pool='shared pool' and name='free memory';
c.Find the large queries in the shared pool library cache (using > 4mb each)
SELECT sql_text "Stmt", count(*), sum(sharable_mem) "Mem",
sum(users_opening) "Open", sum(executions) "Exec"
FROM v$sql GROUP BY sql_text HAVING sum(sharable_mem) > 4096000;
d.Find objects that can be considered pining into the shared pool
column name format a40
column owner format a15
select owner, name, executions, locks, pins, loads, kept from v$db_object_cache where loads > 10;
create temp table and insert records of candidates to be pinned.
CREATE TABLE LRU_TMP AS SELECT * FROM X$KSMLRU;
INSERT INTO LRU_TMP SELECT * FROM X$KSMLRU;
Use the LRU_TMP table for analysis.
SELECT USERNAME, KSMLRCOM, KSMLRHON, KSMLRNUM, KSMLRSIZ, SQL_TEXT
FROM V$SQLAREA A, LRU_TMP K, V$SESSION S WHERE KSMLRSIZ > 3000
AND A.ADDRESS=S.SQL_ADDRESS AND A.HASH_VALUE = S.SQL_HASH_VALUE
AND SADDR=KSMLRSES;
You can see the candidates to pin from the query below
COL STORED_OBJECT FORMAT A40;
COL SQ_EXECUTIONS FORMAT 999,999;
SELECT /*+ ORDERED USE_HASH(D) USE_HASH(C) */ O.KGLNAOWN||’.'||O.KGLNAOBJ STORED_OBJECT, SUM(C.KGLHDEXC) SQL_EXECUTIONS
FROM SYS.X$KGLOB O, SYS.X$KGLRD D, SYS.X$KGLCURSOR C
WHERE
O.INST_ID = USERENV(’INSTANCE’) AND
D.INST_ID = USERENV(’INSTANCE’) AND
C.INST_ID = USERENV(’INSTANCE’) AND
O.KGLOBTYP IN (7, 8, 9, 11, 12) AND
D.KGLHDCDR = O.KGLHDADR AND
C.KGLHDPAR = D.KGLRDHDL
GROUP BY O.KGLNAOWN, O.KGLNAOBJ
HAVING SUM(C.KGLHDEXC) > 0
ORDER BY 2 DESC;
How to pin object
EXECUTE SYS.DBMS_SHARED_POOL.SIZES(150);
EXECUTE SYS.DBMS_SHARED_POOL.KEEP('SYS.STANDARD');
EXECUTE SYS.DBMS_SHARED_POOL.UNKEEP('SYS.STANDARD');
e.LRU work and objects were loaded and flushed
LRU work in the shared pool KSMLRNUM stores the number of objects that were flushed to load the large object. KSMLRISZ stores the size of the object that was loaded (contiguous memory allocated)
column ksmlrcom format a20
column username format a5
select username,sid,KSMLRCOM,KSMLRSIZ,KSMLRNUM, KSMLRHON, KSMLROHV, KSMLRSES from x$ksmlru , v$session where KSMLRSES=SADDR and KSMLRNUM >2 ;
f.How much are waiting for Library Cache Latch
select count(*),event from v$session_wait where event not like '%SQL%' and event not like '%ipc%' and event not like '%timer%' GROUP BY EVENT;
select count(*),wait_time from v$session_wait where event='latch free' and p2=106 group by wait_time;
select sid,wait_time,seconds_in_wait from v$session_wait where event='latch free' and p2=106 and WAIT_TIME>1;
g.Queries identical but aren’t shared.
SELECT address, hash_value, version_count , users_opening , users_executing,
substr(sql_text,1,240) "SQL" FROM v$sqlarea WHERE version_count > 10;
h.Get Biggest chunk of free memory.
select sysdate, decode( sign(ksmchsiz - 812), -1, (ksmchsiz - 16) / 4,
decode(sign(ksmchsiz - 4012),-1, trunc((ksmchsiz + 11924) / 64),
decode(sign(ksmchsiz - 65548), -1, trunc(1/log(ksmchsiz - 11, 2)) + 238,254))) bucket,
sum(ksmchsiz) free_space, count(*) free_chunks, trunc(avg(ksmchsiz)) average_size,
max(ksmchsiz) biggest from x$ksmsp
where inst_id = userenv('Instance') and ksmchcls = 'free' group by
decode(sign(ksmchsiz - 812),-1, (ksmchsiz - 16) / 4,
decode(sign(ksmchsiz - 4012),-1, trunc((ksmchsiz + 11924) / 64),
decode(sign(ksmchsiz - 65548),-1, trunc(1/log(ksmchsiz - 11, 2)) + 238,254 ))) ;
SELECT KSMCHCLS CLASS, COUNT(KSMCHCLS) NUM, SUM(KSMCHSIZ) SIZ,
To_char( ((SUM(KSMCHSIZ)/COUNT(KSMCHCLS)/1024)),’999,999.00′)||’k’ “AVG SIZE”
FROM X$KSMSP GROUP BY KSMCHCLS;
CLASS NUM SIZ AVG SIZE
freeabl 19010 34519404 1.77k
recr 23581 24967956 1.03k
R-freea 68 1632 .02k
perm 22 39801268 1,766.75k
R-free 34 7238192 207.90k
free 2389 36075980 14.75k
Watch for trends using these guidelines:
a) if ‘free’ memory is low (less than 5mb or so) you may need to increase the shared_pool_size and shared_pool_reserved_size. You should expect ‘free’ memory to increase and decrease over time. Seeing trends where ‘free’ memory decreases consistently is not necessarily a problem, but seeing consistent spikes up and down could be a problem.
b) if ‘freeable’ or ‘perm’ memory continually grows then it is possible you are seeing a memory bug.
c) if ‘freeabl’ and ‘recr’ memory classes are always huge, this indicates that you have a lot of cursor info stored that is not releasing.
d) if ‘free’ memory is huge but you are still getting 4031 errors, the problem is likely reloads and invalids in the library cache causing fragmentation.
-Note says that this query can hang database on HP platforms
See the shared pool parameters
column name format a30
select name,value from v$parameter where name like '%shared_pool%' ;
select x.ksppinm, y.ksppstvl from x$ksppi x , x$ksppcv y where x.indx = y.indx and lower(x.ksppinm) like '%spin%';
SELECT count(*) FROM v$latch_children WHERE NAME = 'library cache';
Shrinking and growing operations from V$SGA_RESIZE_OPS dynamic view:
select to_char(end_time, ‘dd-Mon-yyyy hh24:mi’) end, oper_type, initial_size, target_size, final_size from V$SGA_RESIZE_OPS where component=’shared pool’ order by end;
#shared_pool_summary.sql -get an overview of chunks in the shared pool
select
ksmchcom contents,
count(*) chunks,
sum(decode(ksmchcls, 'recr', ksmchsiz)) recreatable,
sum(decode(ksmchcls, 'freeabl', ksmchsiz)) freeable,
sum(ksmchsiz) total
from
sys.x_$ksmsp
where
inst_id = userenv('Instance') and
ksmchcls not like 'R%'
group by
ksmchcom
#reserved_pool_summary.sql - get an overview of chunks in the reserved pool
select
ksmchcom contents,
count(*) chunks,
sum(decode(ksmchcls, 'R-recr', ksmchsiz)) recreatable,
sum(decode(ksmchcls, 'R-freea', ksmchsiz)) freeable,
sum(ksmchsiz) total
from
sys.x_$ksmspr
where
inst_id = userenv('Instance')
group by
ksmchcom
#save_sqlplus_settings.sql -reset sqlplus settings
set termout off
store set sqlplus_settings replace
clear breaks
clear columns
clear computes
set feedback off
set verify off
set termout on
set define "&"
#restore_sqlplus_settings.sql -reset sqlplus settings
set termout off
@sqlplus_settings
clear breaks
clear columns
clear computes
set termout on
i.Check the shared pool reserved size status
SELECT free_space, avg_free_size, used_space, avg_used_size, REQUEST_MISSES, request_failures, last_miss_size FROM v$shared_pool_reserved;
An ORA-04031 error referencing large failed requests, indicates the Reserved Area is too fragmented. The reserved pool is small when: REQUEST_FAILURES > 0 (and increasing), The DBA should Increase shared_pool_reserved_size and shared_pool_size together. It is possible that too much memory has been allocated to the reserved list. The DBA should Decrease shared_pool_reserved_size, If: REQUEST_MISS = 0 or not increasing
FREE_MEMORY = > 50% of shared_pool_reserved_size minimum
col free_space for 999,999,999,999 head “TOTAL FREE”
col avg_free_size for 999,999,999,999 head “AVERAGE|CHUNK SIZE
col free_count for 999,999,999,999 head “COUNT”
col request_misses for 999,999,999,999 head “REQUEST|MISSES
col request_failures for 999,999,999,999 head “REQUEST|FAILURES”
col max_free_size for 999,999,999,999 head “LARGEST CHUNK”
select free_space, avg_free_size, free_count, max_free_size, request_misses, request_failures from v$shared_pool_reserved;
TOTAL FREE AVERAGE
CHUNK SIZE COUNT LARGEST CHUNK REQUEST
MISSES REQUEST
FAILURES
7,238,192 212,888 34 212,888 0 0
You should also use hidden and unsupported parameter “_shared_pool_reserved_pct” to control reserved pool. This parameter controls the allocated percentage of shared pool for reserved pool. By default it is %5 of the shared pool and if you use ASMM for memory management you can set this value higher like 10 to allocate reserved pool dynamically. When you set the parameter you will see the shared_pool_reserved_size parameter will be adjusted to the new setting. The parameter can not be modified when instance is started. You can use the query below to see the current value
select a.ksppinm “Parameter”, b.ksppstvl “Session Value”, c.ksppstvl “Instance Value” from sys.x$ksppi a, sys.x$ksppcv b, sys.x$ksppsv c where a.indx = b.indx and a.indx = c.indx and a.ksppinm = ‘_shared_pool_reserved_pct’;
Parameter Session Value Instance Value
sharedpool_reserved_pct 10 10
j.When having multiple subheaps:
select KSMCHIDX, ksmchcom ChunkComment,
decode(round(ksmchsiz/1000),0,'0-1K', 1,'1-2K', 2,'2-3K', 3,'3-4K',4,'4-5K',5,'5-6k',6,'6-7k',7,'7-8k',8,'8-9k', 9,'9-10k', '> 10K'), count(*), ksmchcls Status, sum(ksmchsiz) Bytes
from x$ksmsp where KSMCHCOM = 'free memory' group by KSMCHIDX,ksmchcom, ksmchcls, decode(round(ksmchsiz/1000),0,'0-1K', 1,'1-2K', 2,'2-3K', 3,'3-4K',4,'4-5K',5,'5-6k',6,'6-7k',7,'7-8k',8,'8-9k', 9,'9-10k','> 10K');
SubPool SGA_HEAP CHUNKCOMMENT size COUNT(*) STATUS BYTES
1 sga heap(1,0) free memory > 10K 34 R-free 7238192
1 sga heap(1,0) free memory 3-4K 2 free 6284
1 sga heap(1,0) free memory > 10K 241 free 35707400
1 sga heap(1,0) free memory 8-9k 1 free 7712
1 sga heap(1,0) free memory 2-3K 4 free 6752
1 sga heap(1,0) free memory 0-1K 2090 free 133288
1 sga heap(1,0) free memory 9-10k 21 free 188676
1 sga heap(1,0) free memory 1-2K 30 free 25868
If you see lack of large chunks it is possible that you can face with ORA-04031 in near future.
k.Check shared pool at first glance quick diagnostics
select 'You may need to increase the SHARED_POOL_RESERVED_SIZE' Description, 'Request Failures = '||REQUEST_FAILURES Logic
from v$shared_pool_reserved where REQUEST_FAILURES > 0
and 0 != (select to_number(VALUE) from v$parameter
where NAME = 'shared_pool_reserved_size')
union
select 'You may be able to decrease the SHARED_POOL_RESERVED_SIZE' Description,'Request Failures = '||REQUEST_FAILURES Logic
from v$shared_pool_reserved where REQUEST_FAILURES < 5
and 0 != (select to_number(VALUE) from v$parameter
where NAME = 'shared_pool_reserved_size')
l.Memory Usage - object list level view
• Owner - Owner of the object
• Object - Name/namespace of the object
• Sharable Memory - Amount of sharable memory in the shared pool consumed by the object
select OWNER, NAME||' - '||TYPE object,SHARABLE_MEM
from v$db_object_cache where SHARABLE_MEM > 10000
and type in ('PACKAGE','PACKAGE BODY','FUNCTION','PROCEDURE')
order by owner asc ,SHARABLE_MEM desc
SELECT * FROM (SELECT ROW_NUMBER () over (PARTITION BY NAMESPACE ORDER BY SHARABLE_MEM DESC) ROW_within , NAMESPACE, SHARABLE_MEM, SUBSTR(NAME,1,40) NAME FROM V$DB_OBJECT_CACHE ORDER BY SHARABLE_MEM DESC) WHERE ROW_WITHIN <= 2 ORDER BY NAMESPACE, ROW_WITHIN;
ROW_WITHIN NAMESPACE SHARABLE_MEM NAME
1 CLUSTER 2794 C_OBJ#_INTCOL#
2 CLUSTER 1684 SMON_SCN_TO_TIME
1 RSRCPLAN 5117 SYS_GROUP -
G500 BIOS sucks Increase Shared Ram
System:
Lenovo G500
windows 8.1 64-bit
1TB
8GB ram
intel hd graphic 4000
SO heres the deal->
Intel Hd 4000 is capable of running new games with low specs. It does not have a dedicated video ram. But that can be done by increasing the shared memory from system ram in BIOS. Heres the sad part BIOS doesnt support this. Other manufacture like dell, hp , asus have given this option in BIOS to increase shared graphic memory from 64mb 128mb 256mb.
Lenovo please upgrade BIOSIntel HD Graphics are not meant to be game changers - It is good for business (Office Software) and streaming video (presentations), and watching movies (DVD, Netflix). Simple games - Mahjong, Card Games and similar software will run without issues, FPS and RPG and the like will suffer greatly not matter if you assign 256mb or 2gb of memory to it.
When Intel gets into the dedicated graphics cards it will be the same deal as they believe most notebook users are business people not gamers.
Either way you dish it up - go with a dedicated card for better game play. Even AMD's APU is better at gaming than Intel's HD line up.
Cheers. -
DB_ACTION_STATNEW - Error - How to increase shared memory in shadow instanc
Hi all,
We are facing the below error in the DB_ACTION_STATNEW phase:
TRACE-INFO: 82: 13 4.822960
TRACE-INFO: 83: [developertra,00000] WHERE TABNAME = :A0; 8 4.822968
TRACE-INFO: 84: [dbntab ,06694] ***LOG BY4=>sql error 604 performing SEL on table DDNTT
TRACE-INFO: 85: 222 4.823190
TRACE-INFO: 86: [dbntab ,06694] ***LOG BY0=>ORA-00604: error occurred at recursive SQL level 1
TRACE-INFO: 87: ORA-04031: unable to allocate 4120 bytes of shared memory ("shared pool","select t.ts#,t.file#,t.block...","Typecheck","seg:kggfaAllocSeg")
TRACE-INFO: 88: 21 4.823211
TRACE-INFO: 89: [dbeh.c ,00000] *** ERROR => missing return code handler 13 4.823224
TRACE-INFO: 90: caller does not handle code 1 from dbntab.c[3718]
TRACE-INFO: 91: ==> calling sap_dext to abort transaction
HALT 20080410111303
We have a physical RAM of 64 GB.
dcecqv1:root > dmesg | more
Apr 10 11:24
$Revision: vmunix: B11.23_LR FLAVOR=perf Fri Aug 29 22:35:38 PDT 2003 $
Memory Information:
physical page size = 4096 bytes, logical page size = 4096 bytes
Physical: 66399504 Kbytes, lockable: 51408244 Kbytes, available: 59648572 Kbytes
From the error message, I feel that I need to increase the shared memory, can you help me how to increase the shared memory now, bcos system is now running in the shadow instance.
Thanks & Regards
SenthilThank you for your mail Shaji.
SQL> show parameter shared_pool_size
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 4120 bytes of shared memory ("shared
pool","select x.inst_id,x.indx+1,ks...","Typecheck","seg:kggfaAllocSeg")
When I tried to see the shared_pool_size it gives the above error.
Regarding the three log files:
STATNEW.LOG
LISTNEW.LOG
DBSTATNEW.LOG
- I didnot find STATNEW.LOG file in the path /usr/sap/put/log
- supadm> cat DBSTATNEW.LOG
1 ETQ201XEntering upgrade-phase "DB_ACTION_STATNEW" ("20080410111258")
2 ETQ367 Connect variables are set for standard instance access
4 ETQ399 System-nr = '02', GwService = 'sapgw02'
4 ETQ399 Environment variables:
4 ETQ399 dbs_ora_schema=SAPR3
4 ETQ399 auth_shadow_upgrade=0
4 ETQ389 reading file "LISTNEW.LOG" in directory "/usr/sap/put/log".
4 ETQ275 Created SQL-script "EXSTATE.ORA"
4 ETQ275 Created SQL-script "EXSTATC.ORA"
4 ETQ276 Executing SQL-script "EXSTATE.ORA"
4 ETQ001 START time "2008/04/10 11:12:58"
4 ETQ399 ext. env.: DIR_LIBRARY=/usr/sap/SUP/SYS/exe/run
4 ETQ399 ext. env.: LD_LIBRARY_PATH=/usr/sap/SUP/SYS/exe/run:/opt/java1.5/jre/lib/IA64N:/opt/java1.5/jre/lib/IA64N/server:/opt/java1.5/jre/../lib/IA64N
4 ETQ399 2008/04/10 11:12:58: put_execute: (tp) forkpid:2537
4 ETQ002 END time "2008/04/10 11:13:03"
4 ETQ278 Errors during execution of SQL-script "EXSTATE.ORA"
1EETQ203 Upgrade phase "DB_ACTION_STATNEW" aborted with errors ("20080410111303")
supadm>
supadm> tail LISTNEW.LOG
NAME= WTY_OBJNR_INDEX
NAME= WTY_PARTNER_TAB
NAME= WTY_RCLHST
NAME= WTY_RCLOBJ
NAME= WTY_RELOB_TAB
NAME= WTY_RELOB_TAB_TX
NAME= WTY_TABLE_ALV
NAME= WYT2M
tp_exec_dbscript: 1 statement(s) successfully processed.
supadm>
Can u pl help
Thanks
Senthil -
I need to increase shared memory. In 10.10 is use /etc/sysctl.conf with a line kern.sysv.shmmax=16777216 and this works. Also in 10.9. But in 10.10.1 shared memory can no longer be increased from the default 4194304 by this means.
The question is simple: how in 10.10.1 does one increase kern.sysv.shmmax in a way that survives a re-bootI have the same problem on my windows 2003 server but the
thing is that I have not been able to get the same error on any
other machine including a windows 2003 I installed on VMWare on the
same machine. I have narrowed down to where in the encoder this
happens. The encoder uses page file backed file maps to register
session information. The call to MapViewOfFileEx method of the
Win32 API fails with the "access denied" error. Whatever it is,
it's due to some defect in the Windows installation I have because
I do not get that message on any other windows installation even
the ones I do with the same windows CD !
I am still trying to find out what the defect might be but I
thought you should know it's got nothing to do with you Windows
make and model...it happens for me on 2k3 and for you on XP...so
you should looke elsewhere.. -
How to add new increase the pool rather then trowing a error.
Im trying to build a game and after many attempts and hours of thinking i did manage to create something that looks like a game.The problem now is that there are so many objects that are constantly creating and removing from the stage. that the game is starting to slow down(it is laggy.).So i have searched the net and understood that i will have to use a "Object pooling Method" rather than creating and removing the objects after i dont have any use of them any more, if i want to make the game more memory friendly.
At first i didnt want to use this method (object pooling) ,but after a while i understood that i dont have a lot of options.So i started to search how and why and how.
Yet in this example im just trying this for the bullets (for now) cause if i can do it for them, i can manage to do it for other objects and projects (it will be simple for me to understand what is happening ., what am i doing , when do i add an existing object from the pool and when im creating a new one(when there are non left, things like this)
i did copy some part of this code from a tutorial that i found in the net but , from then i dont know how to increase the pool rather than throwing this error. I did try to create a new object or to increase the pool length but .... it is not working so im sure that im not doing something the way it must be done.
so i have this so far :
its a "simple" pool that calls a simple shape class (circle dot) and gives that to the main stage when the "SPACE" button is pressed
package
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Shape;
public class Bullet extends Sprite{
public var rectangle:Shape = new Shape();
public function Bullet(){
super();
addEventListener(Event.ADDED_TO_STAGE, init);
graphics.beginFill(0xFF0000);
graphics.drawRect(-5, -5, 10,10);
graphics.endFill();
private function init(event:Event):void{
the SpritePool where i cant figure out how to replace the throw new error with some new code that will increase the pool
package {
import flash.display.DisplayObject;
public class SpritePool {
private var pool:Array;
private var counter:int;
public function SpritePool(type:Class, len:int) {
pool = new Array();
counter = len;
var i:int = len;
while (--i > -1) {
pool[i] = new type();
public function getSprite():DisplayObject {
if (counter > 0) {
return pool[--counter];
} else {
throw new Error("You exhausted the pool!");
public function returnSprite(s:DisplayObject):void {
pool[counter++] = s;
and the Game class (the documents class)
package {
import flash.ui.Keyboard;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Shape;
public class Game extends Sprite {
private var ship:Shape;
private var bullets:Array;
private var pool:SpritePool;
public function Game() {
Assets.init();
addEventListener(Event.ADDED_TO_STAGE, init);
private function init(event:Event):void {
pool = new SpritePool(Bullet,10);
bullets = new Array();
ship = new Shape();
ship.graphics.beginFill(0xFF00FF);
ship.graphics.drawRect(0,0, 60, 60);
ship.graphics.endFill();
ship.x = stage.stageWidth / 2 - ship.width / 2;
ship.y = stage.stageHeight - ship.height;
addChild(ship);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onDown);
addEventListener(Event.ENTER_FRAME, loop);
private function onDown(event:KeyboardEvent):void {
if (event.keyCode == Keyboard.SPACE) {
var b:Bullet = pool.getSprite() as Bullet;
b.x = ship.x + ship.width / 2;
b.y = ship.y;
addChild(b);
bullets.push(b);
trace("Bullet fired");
private function loop(event:Event):void {
for (var i:int=bullets.length-1; i>=0; i--) {
var b:Bullet = bullets[i];
b.y -= 10;
if (b.y < 0) {
bullets.splice(i, 1);
removeChild(b);
pool.returnSprite(b);
trace("Bullet disposed");
any suggestions/help how to do itTo put you on the path (the errors/events needs formalization), here would be a quick example. Your pool class:
package
import flash.display.DisplayObject;
public class SpritePool
private var pool:Array;
private var counter:int;
private var classRef:Class;
// public get to know what's left in the pool
public function get availableObjects():int
return counter;
public function SpritePool(type:Class, len:int)
classRef = type;
pool = new Array();
counter = len;
var i:int = len;
while (--i > -1)
pool[i] = new classRef();
public function getSprite():DisplayObject
if (counter > 0)
return pool[--counter];
else
throw new Error("PoolExhausted");
public function returnSprite(s:DisplayObject):void
pool[counter++] = s;
public function increasePool(amount:int):void
counter += amount;
while (--amount > -1)
pool.push(new classRef());
public function decreasePool(amount:int):void
if (counter >= amount)
counter -= amount;
pool.splice(counter - amount,amount);
else
throw new Error("PoolDecreaseFail");
Now you'd need to be catching those errors. Again, the errors should be formalized or you could use events by extending IEventDispatcher. I kept it simple.
Here would be the simple Bullet class I'm using:
package
import flash.display.Sprite;
public class Bullet extends Sprite
private var bullet:Sprite;
public function Bullet():void
var bullet:Sprite = new Sprite();
bullet.graphics.beginFill(0xFF0000,1);
bullet.graphics.drawCircle(-5,-5,10);
bullet.graphics.endFill();
addChild(bullet);
Just draws a red circle just to visualize it..
Here would be a full example of using it. It will import both of these classes (saved as SpritePool.as and Bullet.as in the same folder). Paste this in the actions panel on frame 1:
import SpritePool;
import Bullet; // a simple red 10px circle
import flash.display.Sprite;
import flash.utils.setTimeout;
// fill the pool, swim trunks optional
var pool:SpritePool = new SpritePool(Bullet, 10);
// grab some objects from the pool
// array of currently held objects
var myBullets:Array = new Array();
while (pool.availableObjects > 0)
myBullets.push(pool.getSprite());
// display in random positions
for (var i:int = 0; i < myBullets.length; i++)
addChild(myBullets[i]);
// position
myBullets[i].x = int(Math.random()*stage.stageWidth);
myBullets[i].y = int(Math.random()*stage.stageHeight);
trace("myBullets has " + myBullets.length + " bullets! pool has " + pool.availableObjects + " left.");
// now I want one more, but I should check for errors
try
// fail, none left!
myBullets.push(pool.getSprite());
catch (e:*)
// this should be a custom event, but for speed, quick and dirty
if (e == 'Error: PoolExhausted')
trace("D'oh no more bullets! I need more!");
pool.increasePool(10);
trace("Added 10 more, now available in pool " + pool.availableObjects);
// try to reduce the pool by 15, which should error
try
pool.decreasePool(15);
catch (e:*)
// again should be a formal error
if (e == 'Error: PoolDecreaseFail')
trace("Oops, can't reduce pool by 15! Let's trim all extras, available is " + pool.availableObjects);
// we know it'll work, no error checking
pool.decreasePool(pool.availableObjects);
trace("Left in pool: " + pool.availableObjects);
// now lets wait 5 seconds and remove it all back to the pool
setTimeout(ReturnToPool,5000);
function ReturnToPool():void
// now let's just return all the objects to the pool
while (myBullets.length > 0)
removeChild(myBullets[myBullets.length - 1]);
pool.returnSprite(myBullets.pop());
// now check the pool, should have 10
trace("Amount of bullets in use " + myBullets.length + ", in pool " + pool.availableObjects);
For ease you can just download my example source (saved down to CS5).
Anything from here is just symantics. For example instead of throwing an error because the pool is too small you could simply increase the pool by a fixed amount yourself and return the objects requested.
To keep objects as low as possible you could use a timer to measure the amount of objects in use over a duration and reduce the pool appropriately, knowing the pool will grow as it needs.
All of this is just to avoid unnecessary object creation.
BTW here's my trace which should match yours:
myBullets has 10 bullets! pool has 0 left.
D'oh no more bullets! I need more!
Added 10 more, now available in pool 10
Oops, can't reduce pool by 15! Let's trim all extras, available is 10
Left in pool: 0
(after 5 seconds)
Amount of bullets in use 0, in pool 10 -
How much Ram do I need in a MacBook Pro for Software Engineering?
I plan to buy a new MacBook Pro in the next month for school and hopefully for work. I would like this computer to get me at least 4 years of use. I will be majoring in software engineering. My question is how much ram would I need in a Macbook Pro for software engineering? I am currenty looking at the 15" 2.3ghz base model with 8gb of ram as well as the 15" 2.4ghz base model retina. I really like the retina but its at my max budget. Will the 8gb of ram be enough since it is not upgradable? Any help will be greatly appreciated.
I am currenty looking at the 15" 2.3ghz base model with 8gb of ram
The MB Pro 15" 2.3Ghz with 8GB of RAM should do the trick.
Save your $$$ on the retina and stick to your budget -
Hi All,
We need to migrate Shared services users and groups from 9.3.1 to 11.1.2.2 version. Any help would be appreciated. Can we use CSS import export utility?
Thanks in advance!!Hi John, In my another environment I have to migrate the users and groups from Hyperion HSS 11.1.1.2 to Hyperion shared services 11.1.2.2. I am using LCM for that, when I export the users and gropus from 11.1.1.2, it exports fine but when i import it to my 11.1.2.2 using LCM, I am getting the below errors.
Error when I try to import the groups:
ErrorEPMIE-00051: Failed to perform operation on role. Could not locate role matching filter {0} and filter attribute {1}. Please ensure that a role exists matching the filter with filter attribute.
EPMIE-00024: Failed to import all of the membership info for group test group. Invalid group members encountered. Please ensure the validity of members and its existence in their respective providers.
Errors when i try to import the users:
ErrorEPMIE-00051: Failed to perform operation on role. Could not locate role matching filter {0} and filter attribute {1}. Please ensure that a role exists matching the filter with filter attribute.
EPMIE-00020: Failed to update user 04668162 during import. Invalid identity for user. Please ensure that the user is available in the system with the identity specified in the import file.
Any idea?
Thanks in advance. -
Hi.
Is there anyway to increase the pool size for a message driven bean (ejb3) in Netweaver CE 7.1?
Can this be done through the NWA application?
Regards,
AndrewYou can do this on design-time if you specify the properties InitialSize, MaxSize & ResizeStep in ejb-j2ee-engine.xml of your application:
<enterprise-bean>
<bean-props>
<property>
<property-name>MaxSize</property-name>
<property-value>1000</property-value>
</property>
<property>u2026</property>
</bean-props>
</enterprise-bean>
Check also the reference about the properties: http://help.sap.com/saphelp_nwce10/helpdata/en/44/ee019ab68d27dfe10000000a1553f6/content.htm
BR, Sergei -
How much RAM will I need?
Considering buying a Macbook Pro, but I wanted to ask around and find out approximatly how much RAM I would need so that I dont get a model thats too powerful or too weak for my usage. I was considering 4 Gbs but im not sure if thats enough.
What im mainly planning to do on the Macbook is:
internet browsing (chrome, safari etc)
Mail app
Word processing software like Microsoft word
Eclipse (java programming)
skype
utorrent
Say I have all these programs running at the same time, how much RAM will I need to have?Oh also, I just remembered wanting to ask this, have you ever tried downloading an OS update for a macbook and apple wont let you because you have outdated technology? Like trying to download ios 7 on an iphone 3G for example.
I've had that exact problem - someone gave me what was, supposedly, an iPhone 4s but turned out to be a 3Gs. Couldn't update to iOS 7.x so it just sits on my desk right now.
And when I had my MacBook Pro (1,1 2006 model) I couldn't upgrade to Lion - was 'stuck with' Snow Leopard.
O'd technology that no longer plays nice with new OS's? Time to get a new machine.
Clinton
Message was edited by: clintonfrombirmingham -
How much RAM do I need to use Mavericks?
Happy am I with my iMac from mid-2011. With 4 GB of RAM, it runs Mac OS X v10.8.5 well. :-)
Daily I use my iMac to work the crossword puzzles from the New York Times, to send & to receive email, and to watch Rush Limbaugh.
I _know_ that I must Upgrade to Mavericks _someday_ but for example, how much more RAM would I need? Thank you.
P. S. I wrote, "I must Upgrade to Mavericks someday" because I need to keep current. But _rarely-indeed_ do I need help [with my iMac :-) ].The requirement is a minimum of 2 GBs. A minimum of 15 GBs of free space on the hard drive.
Upgrading to Mavericks
You can upgrade to Mavericks from Lion or directly from Snow Leopard. Mavericks can be downloaded from the Mac App Store for FREE.
Upgrading to Mavericks
To upgrade to Mavericks you must have Snow Leopard 10.6.8 or Lion installed. Download Mavericks from the App Store. Sign in using your Apple ID. Mavericks is free. The file is quite large, over 5 GBs, so allow some time to download. It would be preferable to use Ethernet because it is nearly four times faster than wireless.
Macs that can be upgraded to OS X Mavericks
1. iMac (Mid 2007 or newer) - Model Identifier 7,1 or later
2. MacBook (Late 2008 Aluminum, or Early 2009 or newer) - Model Identifier 5,1 or later
3. MacBook Pro (Mid/Late 2007 or newer) - Model Identifier 3,1 or later
4. MacBook Air (Late 2008 or newer) - Model Identifier 2,1 or later
5. Mac mini (Early 2009 or newer) - Model Identifier 3,1 or later
6. Mac Pro (Early 2008 or newer) - Model Identifier 3,1 or later
7. Xserve (Early 2009) - Model Identifier 3,1 or later
To find the model identifier open System Profiler in the Utilities folder. It's displayed in the panel on the right.
Are my applications compatible?
See App Compatibility Table - RoaringApps.
Maybe you are looking for
-
I run Windows 7 Home Premium on an HP Pavilion dv6. I cannot install iTunes or QuickTime. Can you help me with this?
-
Just purchased a brand new MBP, and all programs look awesome on it except the one software program where crisp display is required - PSE11. I really need to know my options, is this a fix in the near future? Is PSE12 retina display friendly? Any
-
When i email a it is in 4 pages when they receive it?
i fill out a form for my business and when it is emailed it arrives in 4 pages though its a single pages, help???
-
I bought Song Summoner last night for my 5th Gen iPod and I can't get it to sync to my iPod. I have it set to managing my songs and videos manually since I have a few other games that I purchased two years ago on it which aren't in my current iTunes
-
Resetting DHCP without sudo or admin password?
Not sure if this is the right place to post this query but I am trying to reset the DHCP lease automatically so I can create a little "logout" application in my internet café. I've found the following commands that do the trick but they require the a